在Java中,可以通过创建类来隐藏类的主构造函数private,然后通过public static该类中的方法访问它:
public final class Foo {
/* Public static method */
public static final Foo constructorA() {
// do stuff
return new Foo(someData);
}
private final Data someData;
/* Main constructor */
private Foo(final Data someData) {
Objects.requireNonNull(someData);
this.someData = someData;
}
// ...
}
Run Code Online (Sandbox Code Playgroud)
如何在不将类分成public接口和private实现的情况下与Kotlin达成同样的目标?使构造函数private导致它无法从类外部访问,甚至不能从同一文件中访问.
我在使用Swing制作GUI时缺乏经验,现在我想知道是否可以使用"{"和"}"来细分我的代码,例如
[...]
JFrame f = new JFrame();
JPanel p = new JPanel();
{
JLabel a = new JLabel("Hello");
p.add(a);
JLabel b = new JLabel("World!");
p.add(b);
}
f.add(p);
[...]
Run Code Online (Sandbox Code Playgroud)
我测试了它,我觉得它没有任何区别......我错了吗?
提前致谢
我想使用 Flutter 从单个代码库构建适用于 Android、iOS 和 Web 的应用程序。由于 Web 尚不支持所有 Flutter 插件,因此我必须使用具有依赖项(例如dart:html)的替代方案,而这些依赖项在 Android 和 iOS 上不可用。
如何根据应用程序运行的平台注入正确的实现,而不加载不必要/不可用的包?
我希望我能够很好地提出我的问题,因为我来自德国...... :)
我有一个非常基本的java程序,但是当我启动它时,我得到一个java.lang.ArrayIndexOutOfBoundsException错误.我搜索了问题,但我找不到它:
Code.java
public class Code {
private String code;
private int nextStep;
public Code() {
nextStep = 0;
}
public void setCode(String code) {
this.code = code;
}
public void setNextStep(int lastStep) {
this.nextStep = lastStep;
}
public String getActiveStepSeq() {
String[] activeStepSeq = this.code.split(".");
return(activeStepSeq[0]);
}
}
Run Code Online (Sandbox Code Playgroud)
Object.java
public class Being {
public Code code;
private String activeStepSeq;
private String activeAction;
public String I0;
public String O0;
public String S0;
public Object(Code code) {
this.code = code; …Run Code Online (Sandbox Code Playgroud) 我想知道是否有更优雅的方法来返回属性并更改/"重置"其值.这是我现在这样做的方式:
[...]
final List<T> copyOfOriginal = new ArrayList<T>(original);
original.clear();
return copyOfOriginal;
[...]
Run Code Online (Sandbox Code Playgroud)
我真的要复制整个清单吗?
java ×4
android ×1
arrays ×1
constructor ×1
dart ×1
flutter ×1
ios ×1
kotlin ×1
list ×1
performance ×1
return ×1
return-value ×1
swing ×1
visibility ×1