Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java中的对象创建语法_Java_Syntax_Jvm_Jvm Languages - Fatal编程技术网

Java中的对象创建语法

Java中的对象创建语法,java,syntax,jvm,jvm-languages,Java,Syntax,Jvm,Jvm Languages,关于使用new关键字创建对象的语法。我知道创建对象的语法是: Foo ref = new Foo(); java语言本身是否提供了一些机制,可以创建除上述标准语法之外的对象 我知道Scala有这样的功能,或者可能是其他JVM兼容语言,但我只想从核心java的角度了解一下 不使用关键字“new”和赋值运算符“=”。例如,它可以类似于Foo ref Create()?现在我想开发“Create”方法来取代传统的语法 创建对象的另一种方法是通过反射: Foo ref = Foo.class.newI

关于使用
new
关键字创建对象的语法。我知道创建对象的语法是:

Foo ref = new Foo();
java语言本身是否提供了一些机制,可以创建除上述标准语法之外的对象

我知道Scala有这样的功能,或者可能是其他JVM兼容语言,但我只想从核心java的角度了解一下


不使用关键字“new”和赋值运算符“=”。例如,它可以类似于Foo ref Create()?现在我想开发“Create”方法来取代传统的语法

创建对象的另一种方法是通过反射:

Foo ref = Foo.class.newInstance()

创建对象的另一种方法是通过反射:

Foo ref = Foo.class.newInstance()
Class.newInstance()
使用反射API,例如

Foo ref = Foo.class.newInstance();
请阅读API类的相关内容。去吧,它会帮你的

这可以为您提供一个良好的开端,即使用反射API例如

Foo ref = Foo.class.newInstance();
请阅读API类的相关内容。去吧,它会帮你的


这可以给你一个好的开始

以下是你想要的:

在Java中创建对象的不同方法

这是一件琐事。是的,这是一个有点棘手的问题,人们经常会感到困惑。我找了很多东西来消除我的疑虑

在java中创建对象有四种不同的方法(我真的不知道还有第五种方法吗):

  • 使用新关键字 这是在java中创建对象最常用的方法。我在某个地方读到,几乎99%的对象都是以这种方式创建的
  • MyObject对象=新的MyObject()

  • 使用Class.forName() 如果我们知道类的名称&如果它有一个公共的默认构造函数,我们可以用这种方式创建一个对象
  • MyObject object=(MyObject)Class.forName(“subin.rnd.MyObject”).newInstance()

  • 使用clone() clone()可用于创建现有对象的副本
  • MyObject anotherObject=新的MyObject(); MyObject对象=另一个对象。克隆()

  • 使用对象反序列化 对象反序列化只不过是从其序列化形式创建对象
  • ObjectInputStream inStream=新ObjectInputStream(输入流); MyObject对象=(MyObject)inStream.readObject()

    现在您知道了如何创建对象。但它建议只在必要时创建对象


    来源:

    附言:我从文章中复制了文本,这样即使链接断开也能看到

    我希望这能有所帮助。

    以下是您想要的:

    在Java中创建对象的不同方法

    这是一件琐事。是的,这是一个有点棘手的问题,人们经常会感到困惑。我找了很多东西来消除我的疑虑

    在java中创建对象有四种不同的方法(我真的不知道还有第五种方法吗):

  • 使用新关键字 这是在java中创建对象最常用的方法。我在某个地方读到,几乎99%的对象都是以这种方式创建的
  • MyObject对象=新的MyObject()

  • 使用Class.forName() 如果我们知道类的名称&如果它有一个公共的默认构造函数,我们可以用这种方式创建一个对象
  • MyObject object=(MyObject)Class.forName(“subin.rnd.MyObject”).newInstance()

  • 使用clone() clone()可用于创建现有对象的副本
  • MyObject anotherObject=新的MyObject(); MyObject对象=另一个对象。克隆()

  • 使用对象反序列化 对象反序列化只不过是从其序列化形式创建对象
  • ObjectInputStream inStream=新ObjectInputStream(输入流); MyObject对象=(MyObject)inStream.readObject()

    现在您知道了如何创建对象。但它建议只在必要时创建对象


    来源:

    附言:我从文章中复制了文本,这样即使链接断开也能看到

    我希望这会有所帮助。

    通过在类上创建静态工厂方法,可以避免在大多数代码中使用
    new
    操作符:

    class Foo
    {
        public static Foo create()
        {
            return new Foo();
        }
    }
    
    然后实例化如下所示:

    Foo f = Foo.create();
    

    这并不是更简洁,但是它确实有一些优势,如《有效Java》第1节所述:它允许泛型类型的类型推断(
    Map m=Maps.newHashMap();
    而不是
    Map m=newHashMap();
    ),并允许您将来更改方法,例如,在每次调用时将对象记忆化,而不是创建新对象。

    通过在类上创建静态factory方法,可以避免在大多数代码中使用
    new
    操作符:

    class Foo
    {
        public static Foo create()
        {
            return new Foo();
        }
    }
    
    然后实例化如下所示:

    Foo f = Foo.create();
    

    这并不是更简洁,但是它确实有一些优势,如《有效Java》第1节所述:它允许泛型类型的类型推断(
    Map m=Maps.newHashMap();
    而不是
    Map m=newHashMap();
    ),并允许您在将来更改方法,例如,在每次调用时记录对象,而不是创建新对象。

    赋值运算符与对象的创建无关。赋值运算符与对象的创建无关。尽管如此,请原谅,这仍然是剽窃。链接可能会消失,让这个答案独立于它。我复制了文本,其中提到了来源。这显然不是剽窃。仅仅提到来源是不够的:只做一个复制粘贴,没有自己的贡献,你的答案也是剽窃。@SalmanAyub别担心,答案还在这里:这里没有剽窃;这样的程序可能不太恰当,但答案却要归功于原文作者,只引用了一个理由