请考虑以下代码:
DummyBean dum = new DummyBean();
dum.setDummy("foo");
System.out.println(dum.getDummy()); // prints 'foo'
DummyBean dumtwo = dum;
System.out.println(dumtwo.getDummy()); // prints 'foo'
dum.setDummy("bar");
System.out.println(dumtwo.getDummy()); // prints 'bar' but it should print 'foo'
Run Code Online (Sandbox Code Playgroud)
所以,我想复制dum到dumtwo并更改dum而不影响dumtwo.但上面的代码并没有这样做.当我改变某些内容时dum,也会发生同样的变化dumtwo.
我想,当我说dumtwo = dum,Java 只复制引用.那么,有没有办法创建一个新的副本dum并分配给它dumtwo?
==到目前为止,我一直在我的程序中使用运算符来比较我的所有字符串.但是,我遇到了一个错误,将其中一个更改为了.equals(),并修复了该错误.
是==坏?什么时候应该不应该使用它?有什么不同?
我想澄清一下我是否理解正确:
== - >是参考比较,即两个对象都指向相同的内存位置.equals() - >计算对象中值的比较我的理解是正确的吗?
在java中,实现深层对象复制功能有点困难.您采取了哪些步骤来确保原始对象和克隆的对象没有共享?
如果没有我们可以通过引用传递的方法,如何在java中创建交换函数?有人可以给我一个代码吗?
swap(int a, int b)
{
int temp = a;
a = b;
b = temp;
}
Run Code Online (Sandbox Code Playgroud)
但是由于java通过值传递,因此不会反映出这种变化
我正在浏览Copy Constructors,我已经浏览了堆栈中的链接和其他链接.但我不清楚以下几点.
我的意思是我们需要使用Copy Constructor的确切情况或场景是什么.有人可以用一个例子解释或指出链接,这样我就可以明确地理解它们.
以下是我为了解什么是复制构造函数而经历的链接.
http://www.programmerinterview.com/index.php/java-questions/how-copy-constructors-work/
https://deepeshdarshan.wordpress.com/2013/12/05/copy-constructors-in-java/
第二个链接解释了"为什么"和"在哪里"使用复制构造函数.但我仍然不清楚它.
下面是我的Employee.java类
package com.test;
/**
* @author avinashd
*
*/
public class Employee {
private String rollNo;
private String name;
//constructor
public Employee(String rollNo, String name){
this.rollNo = rollNo;
this.name = name;
}
//copy constructor
public Employee(Employee employee){
this.rollNo = employee.rollNo;
this.name = employee.name;
}
public String getRollNo() {
return rollNo;
}
public void setRollNo(String rollNo) {
this.rollNo = rollNo;
}
public String getName() {
return name;
}
public void …Run Code Online (Sandbox Code Playgroud) 我在Java中有两组比较Item对象.是否有一个比较组,以该方法Item的equals方法被调用,而不是仅仅比较参考?
当我尝试创建扩展函数以设置布尔值true或false时,如下所示.
Boolean.setTrue(){
this = true
}
Boolean.setFalse(){
this = false
}
Run Code Online (Sandbox Code Playgroud)
它表示预期变量.如何实现这一目标.
这似乎是几乎没有人意识到的事情,但Java中的"这个参考"是最终的.在正常的编程日,我想我可以通过在自己的类中重新定义这个引用来重新定义整个实例:
public void method() {
this = new MyObject("arg1", arg2, arg3); //it throws a compile error
}
Run Code Online (Sandbox Code Playgroud)
为什么这个引用在Java中是最终的?
我有一个名为 entry 的 Java 枚举。我的目标是拥有一个将枚举值更改为另一个值的函数。如果我的枚举值为 X,我希望它变成 Y,反之亦然。我尝试编写的代码在这里。但这不会编译,它说在我使用过的地方预期变量this。
public enum Entry {
X,
O;
public void switchEntry(){
this == Entry.X? this = Entry.O: Entry.X ;
}
}
Run Code Online (Sandbox Code Playgroud)
另外我想知道是否可以在我的 ENUM 类中不使用额外的值变量。谢谢你。如果这是一个愚蠢的问题,请道歉。