如何在java中实现C#struct行为

时间:2017-04-07 07:27:04

标签: java struct pass-by-reference pass-by-value

根据MSDN标准struct是一个值类型,但java我们不能有struct,所以我们可以使用class而不是struct。但我担心的是将类实例用作类似于C#struct的值类型。任何人都可以建议我如何在Java中实现struct value类型行为吗?

class Program
{
    static void Main(string[] args)
    {
        Demo d = new Demo("value", "name");
        demoTes(d);
        Console.WriteLine(d.Value);//prints "value" as output
        Console.WriteLine(d.TestValue);//prints "NameChanged" as output
    }
    public static void demoTes(Demo d)
    {
        d.Value = "Valuechanged";
        d.TestValue.Name = "Namechanged";
    }
}
public struct Demo
{
    public string Value;
    public Test TestValue;
    public Demo(string value, string name)
    {
        Value = value;
        TestValue = new Test(name);
    }
}
public class Test
{
    public string Name;
    public Test(string name)
    {
        Name = name;
    }
}

在上面的代码中,我需要将自定义类型作为值传递,而不是对方法的引用。

提前致谢。

此致 萨拉

0 个答案:

没有答案