首页 / JAVA / 构造函数的Java自定义可选值
构造函数的Java自定义可选值
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了构造函数的Java自定义可选值,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1015字,纯文字阅读大概需要2分钟。
内容图文
![构造函数的Java自定义可选值](/upload/InfoBanner/zyjiaocheng/679/d5614b120af147718feda1e3753a767f.jpg)
这段代码几乎是我想要做的:
import java.util.Random;
public class TestClass {
protected int testVarA;
protected int testVarB;
public TestClass() {
Random r = new Random();
this(r.nextInt(),r.nextInt());
}
public TestClass(int testVarA, int testVarB) {
this.testVarA = startTestVarA;
this.testVarB = startTestVarB;
}
}
但是,这不能编译,因为this()语句必须在函数的开头.我可以做类似的事情
this((new Random()).getNextInt(),(new Random()).getNextInt())
但这感觉非常不适当.正确的做法是什么?
解决方法:
您可以使用将复杂的初始化逻辑移动到单独的方法:
public TestClass() {
Random r = new Random();
init(r.nextInt(),r.nextInt());
}
public TestClass(int testVarA, int testVarB) {
init(testVarA, testVarB)
}
private void init(int testVarA, int testVarB) {
this.testVarA = startTestVarA;
this.testVarB = startTestVarB;
}
这不仅仅是将Random作为字段,而是更通用的解决方案.在这种特殊情况下,随机字段可以工作,因为该类的所有实例都可以共享它而没有任何副作用,但是,如果您想拥有一些不是线程安全的初始化器,这可能会成为问题.甚至没有谈论静态字段不符合垃圾回收的条件.永远
内容总结
以上是互联网集市为您收集整理的构造函数的Java自定义可选值全部内容,希望文章能够帮你解决构造函数的Java自定义可选值所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。