gpt4 book ai didi

java - 我可以为 Java 类创建非显式构造函数吗?

转载 作者:行者123 更新时间:2023-12-01 16:02:43 24 4
gpt4 key购买 nike

默认情况下,如果存在适当的构造函数(并且未显式声明),C++ 将在赋值中执行“自动提升”。

在 Java 中,默认情况下不会发生此行为。如果我想要自动升级,有没有办法将我的构造函数声明为隐式?

例如,下面是一些具有我想要的效果的 C++ 代码:

class Foo {
public:
Foo(string) { /* ... */ }
/* Foo's methods and stuff */
};

void DoSomethingWithAFoo(Foo foo)
{
/* ... */
}

int main()
{
string s = "I am a happy string, I swear!";

DoSomethingWithAFoo(s);

return 0;
}

通常,在 C++ 中这是允许的,并且字符串 s 将自动提升(通过从 s 构造临时 Foo)。
由于 Foo(string) 构造函数未标记为显式,因此我什至不需要类型转换。

有没有办法在Java中做到这一点?

我问这个问题是因为我正在尝试创建一种代表任何一种特定类型的其他类型的特定类型。例如,想象一个class Primitive 表示单个 boolean 值、整数、字符或 double 值(这不是我的具体示例,但它是相关的)。

我的系统中需要 Primitive 的方法也应该接受 Primitive 可能表示的任何“真实类型”(通过构造函数调用自动提升为 Primitive 类型的匿名对象)。

在我的实际工作中(与本例相反),我的Primitive类的等价物具有来自一些基本类型和多种对象类型的构造函数(每个构造函数仅采用一个参数)。理想情况下,我希望所有这些都能够自动升级。

最佳答案

没有。 Java 没有隐式构造函数。

关于java - 我可以为 Java 类创建非显式构造函数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3417364/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com