Java 如何从构造函数返回带有预设字段的新实例

Java 如何从构造函数返回带有预设字段的新实例,java,constructor,return-value,Java,Constructor,Return Value,XHTML: <p:carousel value="#{carouselView.cars}" var="car" itemStyleClass="carItem"> <h:panelGrid columns="2" style="width:100%" cellpadding="5" columnClasses="label,value"> <f:facet name="header"> <p:graph

XHTML:

<p:carousel value="#{carouselView.cars}" var="car" itemStyleClass="carItem">
    <h:panelGrid columns="2" style="width:100%" cellpadding="5" columnClasses="label,value">
        <f:facet name="header">
            <p:graphicImage name="../images/cars/#{car.brand}.gif"/> 
        </f:facet>

        <h:outputText value="Id:" />
        <h:outputText value="#{car.id}" />

        <h:outputText value="Year" />
        <h:outputText value="#{car.year}" />

        <h:outputText value="Color:" />
        <h:outputText value="#{car.color}" style="color:#{car.color}"/>
我得到的错误是

原因:java.lang.NullPointerException

在com.abc.mmc.dto.CarouselView.init(CarouselView.java:35)
上,构造函数不应该返回任何内容。对于典型的(非常普通的Java对象),目标是使用指定的参数创建(或构造)对象

例如:

public class Car {
    private String randomId;
    private String randomBrand;
    private String randomYear;

    public Car(String randomId, String randomBrand, int randomYear) {
        this.randomId = randomId; 
        this.randomBrand = randomBrand;
        this.randomYear = randomYear;
    } 

    //Getters and Setters follow
}
this.randomId=randomId
获取参数
randomId
并将其分配给类变量
this.randomId

这是普遍的惯例。下面是另一个代码片段,用于详细说明意图(尽管优先考虑前面的代码片段,假设您的变量命名良好):


如果您将参数传递给方法的构造函数而不使用它们,那么这是浪费时间。你只是在建造裸露的物体。获取传入参数并使用这些项目“设计”您的
Car
对象非常重要


编辑以下OP更新:

<p:carousel value="#{carouselView.cars}" var="car" itemStyleClass="carItem">
    <h:panelGrid columns="2" style="width:100%" cellpadding="5" columnClasses="label,value">
        <f:facet name="header">
            <p:graphicImage name="../images/cars/#{car.brand}.gif"/> 
        </f:facet>

        <h:outputText value="Id:" />
        <h:outputText value="#{car.id}" />

        <h:outputText value="Year" />
        <h:outputText value="#{car.year}" />

        <h:outputText value="Color:" />
        <h:outputText value="#{car.color}" style="color:#{car.color}"/>
你在
服务上得到一个NullPointerException.createCars(3)因为您没有初始化
CarService
对象:

private Car selectedCar;
private CarService service;
@PostConstruct
public void init() {
    service = new CarService(); //Create your service object
    cars = service.createCars(3);
}

构造函数不应该返回任何内容。对于典型的(非常普通的Java对象),目标是使用指定的参数创建(或构造)对象

例如:

public class Car {
    private String randomId;
    private String randomBrand;
    private String randomYear;

    public Car(String randomId, String randomBrand, int randomYear) {
        this.randomId = randomId; 
        this.randomBrand = randomBrand;
        this.randomYear = randomYear;
    } 

    //Getters and Setters follow
}
this.randomId=randomId
获取参数
randomId
并将其分配给类变量
this.randomId

这是普遍的惯例。下面是另一个代码片段,用于详细说明意图(尽管优先考虑前面的代码片段,假设您的变量命名良好):


如果您将参数传递给方法的构造函数而不使用它们,那么这是浪费时间。你只是在建造裸露的物体。获取传入参数并使用这些项目“设计”您的
Car
对象非常重要


编辑以下OP更新:

<p:carousel value="#{carouselView.cars}" var="car" itemStyleClass="carItem">
    <h:panelGrid columns="2" style="width:100%" cellpadding="5" columnClasses="label,value">
        <f:facet name="header">
            <p:graphicImage name="../images/cars/#{car.brand}.gif"/> 
        </f:facet>

        <h:outputText value="Id:" />
        <h:outputText value="#{car.id}" />

        <h:outputText value="Year" />
        <h:outputText value="#{car.year}" />

        <h:outputText value="Color:" />
        <h:outputText value="#{car.color}" style="color:#{car.color}"/>
你在
服务上得到一个NullPointerException.createCars(3)因为您没有初始化
CarService
对象:

private Car selectedCar;
private CarService service;
@PostConstruct
public void init() {
    service = new CarService(); //Create your service object
    cars = service.createCars(3);
}

构造函数不应该返回任何内容。对于典型的(非常普通的Java对象),目标是使用指定的参数创建(或构造)对象

例如:

public class Car {
    private String randomId;
    private String randomBrand;
    private String randomYear;

    public Car(String randomId, String randomBrand, int randomYear) {
        this.randomId = randomId; 
        this.randomBrand = randomBrand;
        this.randomYear = randomYear;
    } 

    //Getters and Setters follow
}
this.randomId=randomId
获取参数
randomId
并将其分配给类变量
this.randomId

这是普遍的惯例。下面是另一个代码片段,用于详细说明意图(尽管优先考虑前面的代码片段,假设您的变量命名良好):


如果您将参数传递给方法的构造函数而不使用它们,那么这是浪费时间。你只是在建造裸露的物体。获取传入参数并使用这些项目“设计”您的
Car
对象非常重要


编辑以下OP更新:

<p:carousel value="#{carouselView.cars}" var="car" itemStyleClass="carItem">
    <h:panelGrid columns="2" style="width:100%" cellpadding="5" columnClasses="label,value">
        <f:facet name="header">
            <p:graphicImage name="../images/cars/#{car.brand}.gif"/> 
        </f:facet>

        <h:outputText value="Id:" />
        <h:outputText value="#{car.id}" />

        <h:outputText value="Year" />
        <h:outputText value="#{car.year}" />

        <h:outputText value="Color:" />
        <h:outputText value="#{car.color}" style="color:#{car.color}"/>
你在
服务上得到一个NullPointerException.createCars(3)因为您没有初始化
CarService
对象:

private Car selectedCar;
private CarService service;
@PostConstruct
public void init() {
    service = new CarService(); //Create your service object
    cars = service.createCars(3);
}

构造函数不应该返回任何内容。对于典型的(非常普通的Java对象),目标是使用指定的参数创建(或构造)对象

例如:

public class Car {
    private String randomId;
    private String randomBrand;
    private String randomYear;

    public Car(String randomId, String randomBrand, int randomYear) {
        this.randomId = randomId; 
        this.randomBrand = randomBrand;
        this.randomYear = randomYear;
    } 

    //Getters and Setters follow
}
this.randomId=randomId
获取参数
randomId
并将其分配给类变量
this.randomId

这是普遍的惯例。下面是另一个代码片段,用于详细说明意图(尽管优先考虑前面的代码片段,假设您的变量命名良好):


如果您将参数传递给方法的构造函数而不使用它们,那么这是浪费时间。你只是在建造裸露的物体。获取传入参数并使用这些项目“设计”您的
Car
对象非常重要


编辑以下OP更新:

<p:carousel value="#{carouselView.cars}" var="car" itemStyleClass="carItem">
    <h:panelGrid columns="2" style="width:100%" cellpadding="5" columnClasses="label,value">
        <f:facet name="header">
            <p:graphicImage name="../images/cars/#{car.brand}.gif"/> 
        </f:facet>

        <h:outputText value="Id:" />
        <h:outputText value="#{car.id}" />

        <h:outputText value="Year" />
        <h:outputText value="#{car.year}" />

        <h:outputText value="Color:" />
        <h:outputText value="#{car.color}" style="color:#{car.color}"/>
你在
服务上得到一个NullPointerException.createCars(3)因为您没有初始化
CarService
对象:

private Car selectedCar;
private CarService service;
@PostConstruct
public void init() {
    service = new CarService(); //Create your service object
    cars = service.createCars(3);
}

构造函数不返回任何内容。 您可能希望在构造函数中设置一些从参数到对象的值。 比如:

public class Car {
    private String randomId;
    private String randomBrand;
    private int randomYear;
    public Car(String randomId, String randomBrand, int randomYear) {
        this.randomId = randomId;
        this.randomBrand = randomBrand;
        this.randomYear = randomYear;
    }
}

构造函数不返回任何内容。 您可能希望在构造函数中设置一些从参数到对象的值。 比如:

public class Car {
    private String randomId;
    private String randomBrand;
    private int randomYear;
    public Car(String randomId, String randomBrand, int randomYear) {
        this.randomId = randomId;
        this.randomBrand = randomBrand;
        this.randomYear = randomYear;
    }
}

构造函数不返回任何内容。 您可能希望在构造函数中设置一些从参数到对象的值。 比如:

public class Car {
    private String randomId;
    private String randomBrand;
    private int randomYear;
    public Car(String randomId, String randomBrand, int randomYear) {
        this.randomId = randomId;
        this.randomBrand = randomBrand;
        this.randomYear = randomYear;
    }
}

构造函数不返回任何内容。 您可能希望在构造函数中设置一些从参数到对象的值。 比如:

public class Car {
    private String randomId;
    private String randomBrand;
    private int randomYear;
    public Car(String randomId, String randomBrand, int randomYear) {
        this.randomId = randomId;
        this.randomBrand = randomBrand;
        this.randomYear = randomYear;
    }
}

你不需要归还任何东西。构造函数没有返回值。它具有初始化功能

您不需要返回任何内容。构造函数没有返回值。它具有初始化功能

您不需要返回任何内容。构造函数没有返回值。它具有初始化功能

您不需要返回任何内容。构造函数没有返回值。它具有初始化功能

在这样一个简单的构造函数中,我根本不会返回任何值。由于更加复杂,特别是依赖于外部源,我可能会添加一个布尔值来表示构造是否成功

在这样一个简单的构造函数中,我根本不会返回任何值。由于更加复杂,特别是依赖于外部源,我可能会添加一个布尔值来表示构造是否成功

在这样一个简单的构造函数中,我根本不会返回任何值。由于更加复杂,特别是依赖于外部源,我可能会添加一个布尔值来表示构造是否成功

在这样一个简单的构造函数中,我根本不会返回任何值。由于更加复杂,特别是依赖外部资源,我可能会添加一个bo