Java 方法从未到达 main 中的 (?)

标签 java

public class HelloWorld{

    static class Sample {
        private String n;

        public Sample(String n){
            this.n = n;
        }

        public String toString(){
            return n;
        }
    }
     public static void main(String []args){
        Sample k = new Sample("A");
        System.out.println(k);
        stuff(k);
        System.out.println(k);
     }

     public static void stuff(Sample k){
         k = new Sample("B");
     }
}

为什么打印 AA 而不是 AB?我是从一个关于 C# 的视频中看到这个的,但显然 java 也有它。

最佳答案

发生这种情况是因为您将 stuff 方法创建为静态。否则它会起作用。

使用此代码打印 A B。

public class HelloWorld{

    static class Sample {
        private String n;

        public Sample(String n){
            this.n = n;
        }

        public String toString(){
            return n;
        }
    }
     public static void main(String []args){
        Sample k = new Sample("A");
        System.out.println(k);
        k=stuff(k);
        System.out.println(k);
     }

     public static Sample stuff(Sample k){
         return new Sample("B");
     }
}

关于Java 方法从未到达 main 中的 (?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38009973/

相关文章:

java - 更改 UIDefaults 中的 JFrame 边框

java - 日历 - 时间间隔

java - 在一个域中进行身份验证并在 Java 中查询另一个域中的用户

java - 静态方法和非静态方法Java

java - 创建游戏关卡的最有效方式? (LibGDX)

java - 仅转义 XML 实体一次

java - JVM Bridge 关键字 - 有什么特殊用途吗?

java - Android USB 配件多线程

Java - 实例化未知数量的实体

java - JBAS012144 连接超时