Tag: java

SQL准备好的语句如何通过多个可能的菜单select来select?

所以我有4个菜单select(产品,位置,courseType和类别),所有这些都可以为空(使用JSF编程,但这应该是无关紧要的这个问题,因为它是一个SQL问题)。 菜单select将向托pipebean发送用户select的variables,并使用准备好的语句使用用户select的菜单中的信息(如果有的话)search数据库表。 如果用户离开菜单项为空,它应该search一切。 如果用户离开菜单项的1个,2个或3个信息,另一个为空,则应该相应地进行search。 我的问题是如何做到这一点,而无需附加到每个适当的SQL语句的bean的一堆if / then语句? 还是有一个更好的SQL语句,我可以做到这一切吗? 我正在使用Java中的准备语句。 我试过这个: if (product != null && location != null && courseType != null && category != null) { pstmt = conn.prepareStatement("select * FROM Courses WHERE " + "product = ? " + "and location = ? " + "and courseType = ? " + "and category […]

实例方法引用和Lambda参数

我无法理解方法引用的语法,其中有两个参数a和b ,引用是b上的一个方法。 例如,我明白如何 Arrays.sort(personArray, comparators::compareByName); 相当于 Arrays.sort(personArray, (o1, o2) -> comparators.compareByName(o1, o2)); 因为在这种情况下,lambda参数匹配方法调用参数(o1, o2) 。 如何为这个lambda stream.sorted((o1, o2) -> o1.compareToIgnoreCase(o2)); 我的IDE告诉我这相当于: stream.sorted(String::compareToIgnoreCase); 我没有find一个规则来replace语法: a.method(b)与方法引用。 例如,如果lambda有三个或更多的参数呢? 这是合法吗? 第一个参数是否成为方法目标,剩下的成为参数?

从Java打开一个新的提示/terminal窗口

我想打开一个新的terminal窗口,打开后会运行一个命令。 它最好是一个真正的本地窗口,我不介意为linux / osx / windows编写不同的代码。 我假设一个模拟terminal将工作,只要它支持一个真正的terminal将做的一切,而不仅仅是打印命令的输出线。

将创build多less个String对象

我有以下Java代码: public String makinStrings() { String s = "Fred"; s = s + "47"; s = s.substring(2, 5); s = s.toUpperCase(); return s.toString(); } 这个问题很简单:调用这个方法时会创build多less个String对象? 在开始的时候,我回答说创build了5个String对象,但是我的书的答案是只有3个对象被创build,没有给出解释(这是一个SCJP问题)。 从我的angular度来看,有5个对象:“弗雷德”,“47”,“弗雷德47”,“ED4”,“ED4”。 我也在一个SCJP模拟考试中发现了这个问题,同样的答案3。

在运行时更改字体

请问是否有另一种方法如何在运行时改变字体作为使用FontUIResource,整个AWT / Swing GUI,没有任何知识/兴趣,如果有本地variables和types的JComponents import java.awt.*; import java.awt.event.*; import java.util.Locale; import java.util.logging.Level; import java.util.logging.Logger; import javax.swing.*; import javax.swing.plaf.FontUIResource; import javax.swing.plaf.basic.BasicComboBoxRenderer; public class SystemFontDisplayer extends JFrame { private static final long serialVersionUID = 1L; private JFrame frame = new JFrame("Nimbus UIDeafaults and Font"); private JComboBox fontsBox; private javax.swing.Timer timer = null; private JButton testButton = new […]

试图调用虚拟方法'android.view.Window $callbackandroid.view.Window.getCallback()'对空引用

当我的SplashActivity打开LoginActivity我的应用程序崩溃。 以下是我的SplashActivity.java : package com.example.android.appName; import android.content.Intent; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import java.util.Timer; import java.util.TimerTask; public class SplashActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_splash); Timer timer = new Timer(); timer.schedule(new TimerTask() { public void run() { Intent intent = new Intent(SplashActivity.this, LoginActivity.class); startActivity(intent); finish(); } }, 1500); } } 和我的LoginActivity.java […]

方法匹配不好

我不明白为什么这个正则expression式的方法返回false; Pattern.matches("\\bi", "an is"); 我在字边界的人物!

从java运行shell命令

我正在处理一个应用程序有一个关于从Java应用程序运行shell命令的问题。 这里是代码: public String execRuntime(String cmd) { Process proc = null; int inBuffer, errBuffer; int result = 0; StringBuffer outputReport = new StringBuffer(); StringBuffer errorBuffer = new StringBuffer(); try { proc = Runtime.getRuntime().exec(cmd); } catch (IOException e) { return ""; } try { response.status = 1; result = proc.waitFor(); } catch (InterruptedException e) { return […]

写在Java文本文件的开头

我需要在文本文件的开头写入一些东西。 我有一个文本文件的内容,我想在这个内容之前写东西。 说我有; 下午好,先生,今天好吗? 我很好你怎么样? 谢谢你的问候,我很好 修改后,我想它是这样的: 第1页 – 场景59 2011年5月25日 下午好,先生,今天好吗? 我很好你怎么样? 谢谢你的问候,我很好 只是做了内容:)我如何修改这样的文本文件?

使用string值作为variables名称

是否有可能使用string作为variables名称..就像在这个例子中 – String musicPlaying = "music2"; Music music1 = new Music("blaalla"); Music music2 = new Music("blalala"); Music music3 = new Music("balaada"); if(!musicPlaying.stillPlaying) { // As you can see i am using string as a variable name. changeMusic(); }