我知道抽象类和具体类之间的差异很小.我知道你不能用具体类创建一个抽象类的实例,抽象类可以有'抽象'方法.
但我有一个像下面这样的例子.很多时候,我们看到以下示例正在起作用.我将跳过一些可以在Parent类中定义的常用方法.
public abstract class Parent {
public void init() {
doInit();
}
public abstract void doInit();
}
public class Child extends Parent {
public void doInit() {
// implementation
}
}
Run Code Online (Sandbox Code Playgroud)
我认为我们可以用如下的具体类做同样的事情.
public class Parent {
public void init() {
doInit();
}
public void doInit() {
// Empty
}
}
Run Code Online (Sandbox Code Playgroud)
我很想知道是否有任何独特的情况我们必须使用抽象类.运行期间是否与上述示例有任何显着差异?
谢谢.
我正在尝试像这样转换为 int,但出现异常。
String strHexNumber = "0x1";
int decimalNumber = Integer.parseInt(strHexNumber, 16);
Exception in thread "main" java.lang.NumberFormatException: For input string: "0x1"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
at java.lang.Integer.parseInt(Integer.java:458)
Run Code Online (Sandbox Code Playgroud)
如果有人可以修复它,那将是一个很大的帮助。
谢谢。
我有多个准备好的陈述.我是否需要为每个语句执行'connection.commit'或在最后一个语句后只调用一次?
Connection connection = datasource.getConnect();
connection.setAutoCommit(false);
PreparedStatement pstmt1 = connection.prepareStatement(query1);
pstmt1.executeUpdate();
connection.commit();
PreparedStatement pstmt2 = connection.prepareStatement(query2);
pstmt2.executeUpdate();
connection.commit();
PreparedStatement pstmt3 = connection.prepareStatement(query3);
pstmt3.executeUpdate();
connection.commit();
Or
Connection connection = datasource.getConnect();
connection.setAutoCommit(false);
PreparedStatement pstmt1 = connection.prepareStatement(query1);
pstmt1.executeUpdate();
PreparedStatement pstmt2 = connection.prepareStatement(query2);
pstmt2.executeUpdate();
PreparedStatement pstmt3 = connection.prepareStatement(query3);
pstmt3.executeUpdate();
connection.commit();
Run Code Online (Sandbox Code Playgroud)
谢谢.
我正在尝试将文本字段添加到对话框中,但它似乎不起作用......这是我的代码.任何人都可以修复我的代码或给我一些关于如何在对话框中添加两个文本字段的指导吗?
谢谢.
final EditText input1 = new EditText(this);
input1.setText("note");
input1.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
input1.setText("");
}
});
final EditText input2 = new EditText(this);
input2.setMinLines(1);
input2.setText("0.0");
input2.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
input2.setText("");
}
});
LinearLayout layout = new LinearLayout(this);
layout.setOrientation(1);
layout.addView(input1);
layout.addView(input2);
return new AlertDialog.Builder(this).
// code for showing Ok and Cancel button
.setView(layout).create();
Run Code Online (Sandbox Code Playgroud) 我有一个例子如下.我只想转换由','分隔的字符串,并将其转换为长数组而不使用空字符串.productIdParams包含[1],但是当我执行它时,我得到一个例外.
java.lang上的java.lang.System.arraycopy(Native Method)中的java.lang.ArrayStoreException java.util.stream.Nodes上的java.util.stream.SpinedBuffer.copyInto(SpinedBuffer.java:194).$ SpinedNodeBuilder.copyInto(Nodes.java) :1290)java.util.stream上的java.util.stream.SpinedBuffer.asArray(SpinedBuffer.java:215)java.util.stream.Nodes $ SpinedNodeBuilder.asArray(Nodes.java:1296)java.util.stream.ReferencePipeline.toArray( ReferencePipeline.java:439)
String test = "1,";
String[] productIdParams = Iterables.toArray(com.google.common.base.Splitter.on(",").omitEmptyStrings().split(test), String.class);
try {
Long[] productIds = Arrays.stream(productIdParams).filter(productId -> !productId.isEmpty()).toArray(Long[]::new);
System.out.println(productIds[0]);
} catch (Exception e) {
e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)
有什么不对?
谢谢.