标签: parameterized-constructor

Java Optional.orElseThrow 签名说明

出于好奇,我查看了Optional类方法orElseThrow,但对它的签名感到困惑。我不明白为什么必须按原样声明它。所以,我用原始orElseThrow方法的副本和我的简化变体做了一个实验:

public class Main<T> {

    //This is original signature of Optional.orElseThrow method 
    public  <X extends Throwable> T orElseThrow(Supplier<? extends X> exceptionSupplier) throws X{

            throw exceptionSupplier.get();
    }

    //This is my attempt to simplify it but it doesn't work without try-catch block
    public T orElseThrow2(Supplier<Throwable> exceptionSupplier) throws Throwable{

        throw exceptionSupplier.get();
    }

    public static void main(String[] args){
        Main<Object> m = new Main<Object>();

            m.orElseThrow(() -> new RuntimeException("ha")); //no warnings/errors shown

            m.orElseThrow2(() -> new RuntimeException("sad")); //"Unhandled exception: java.lang.Throwable"
} …
Run Code Online (Sandbox Code Playgroud)

java generics optional parameterized-constructor

3
推荐指数
1
解决办法
5232
查看次数

为什么即使在调用参数化构造函数时也会调用默认构造函数?

我有一个类,我正在使用参数化构造函数创建它的一个对象。在此期间,参数化构造函数和默认构造函数都已被调用。

这是我的片段:

class student {
    string name;
    int age;
public:
    student() {
        cout << "Calling the default constructor\n";
    }
    student(string name1, int age1) {
        cout << "Calling the parameterized const\n";
        name = name1;
        age = age1;
    }
    void print() {
        cout << " name : " << name << " age : " << age << endl;
    }
};

int main()
{
    map<int, student> students;
    students[0] = student("bob", 25);
    students[1] = student("raven", 30);

    for (map<int, student>::iterator it = students.begin(); it …
Run Code Online (Sandbox Code Playgroud)

c++ class stdmap default-constructor parameterized-constructor

2
推荐指数
1
解决办法
223
查看次数

有什么方法可以从参数化构造函数调用默认构造函数吗?

假设我有以下代码

class C {
    int i;
    String s;

    C(){
        System.out.println("In main constructor");
        // Other processing
    }

    C(int i){
        this(i,"Blank");
        System.out.println("In parameterized constructor 1");
    }

    C(int i, String s){
        System.out.println("In parameterized constructor 2");
        this.i = i;
        this.s = s;
        // Other processing 
        // Should this be a copy-paste from the main contructor? 
        // or is there any way to call it? 
    }
    public void show(){
        System.out.println("Show Method : " + i + ", "+ s);
    }
}
Run Code Online (Sandbox Code Playgroud)

我想知道,有什么方法可以从参数化构造函数(即C(int i, String …

java default-constructor parameterized-constructor

1
推荐指数
1
解决办法
1万
查看次数

如何在c ++中初始化参数化构造函数作为默认构造函数?

如何在c ++中初始化参数化构造函数作为默认构造函数?我的考试中提到了这个问题.我们得到了一个参数化的构造函数,它也作为默认构造函数.

c++ constructor default-constructor parameterized-constructor

1
推荐指数
1
解决办法
249
查看次数

当我们为类的对象分配整数值时,为什么会调用参数化构造函数?

代码是:

#include<iostream>
using namespace std;

class Integer
{
    int num;

    public:
        Integer()
        {
            num = 0;
            cout<<"1";
        }
        
        Integer(int arg)
        {
            cout<<"2";
            num = arg;
        }
        int getValue()
        {
            cout<<"3";
            return num;
        }

};

int main()
{
    Integer i;
    i = 10;  // calls parameterized constructor why??
    cout<<i.getValue();
    return 0;

}
Run Code Online (Sandbox Code Playgroud)

在上面的代码中,语句i=10调用了参数化构造函数。你能解释一下吗。

c++ constructor assignment-operator parameterized-constructor

1
推荐指数
1
解决办法
88
查看次数

当类包含用户定义的参数化构造函数时,为什么编译器未提供默认构造函数?

我是Java的新手,想知道“当类包含用户定义的参数化构造函数时,为什么编译器未提供默认构造函数?”

java default-constructor parameterized-constructor

-1
推荐指数
1
解决办法
60
查看次数