Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/343.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.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_Class_Methods_Junit_Return Type - Fatal编程技术网

Java 如何在方法中返回类类型

Java 如何在方法中返回类类型,java,class,methods,junit,return-type,Java,Class,Methods,Junit,Return Type,我有一节课 public class Engine { Double engineSize; public Engine(){ this.engineSize = 1.0; } public Double getEngineSize() { return engineSize; } } 我还有一门课: public class ModelT { public Engine getEngine() {

我有一节课

public class Engine {

    Double engineSize;
    public Engine(){
        this.engineSize = 1.0;
    }
    public Double getEngineSize() {

        return engineSize;
    }
}
我还有一门课:

public class ModelT {

    public Engine getEngine() {

        return null;
    }}
现在我想通过这个测试:

@Test

public void shouldHaveTheCorrectEngineSize(){
    assertThat(modelT.getEngine().getEngineSize(), is(1.0));
}

我很难在方法中返回引擎类型,我尝试了几种方法,但知识有限,因为我是java初学者。。你能告诉我怎么做吗?我可以进一步阅读的概念名称是什么

您需要在ModeT类中存储引擎实例:

public class ModelT {

   private Engine eng;      
  ModelT( Engine eng){
       engine = eng;
  }

    public Engine getEngine() {

        return eng;
    }}
然后在Main中-创建引擎对象并传入modelt:

 Engine eng = new Engine();
  ModelT car = new Modelt(eng);

很难看出你想要达到什么目标

您可以查看instanceof以获得引擎的类别

您可能需要研究继承以及与类相关的各种方式


如果将
引擎
类与
ModelT
我所说的联想是指使用



如何在 类ModelT

你在某处:

ModelT foo = new ModelT();
Engine e = foo.getEngine();
double s = e.getEngineSize();

此测试永远不会通过,因为在
getEngine()
方法中返回
null
。 如果在
null
上调用
getEngineSize()
,将收到
NullPointerException

您需要这样做:

public class ModelT {

    public Engine getEngine() {

        return new Engine();
    }
}
然后,您将能够使用
引擎


由于您对如何学习Java基础知识的疑问,我建议您直接从Oracle学习。

也许我不理解您的问题,但您的测试永远不会返回ok,因为在ModelT方法getEngine中,您返回的是null

请尝试以下代码:

public class ModelT {
    public Engine getEngine() {
        return new Engine();
    }
}

为什么
getEngine
返回空对象?你不能对此进行任何方法调用。我不确定如何回答你的问题。通过返回引擎类型对象,可以返回引擎类型(对象)。就像你在
getEngineSize
中返回一个双精度值一样,你也可以在
getEngine
中返回一个引擎,我现在把它保持为null,作为一个问题,我如何才能在这里返回引擎的类型而不是null,并通过这个方法获取getEngineSize的值并将其作为引擎对象返回。。。我是一个初学者,这让我很困惑……如果你在做类似的事情时遇到困难,我强烈建议不要开始使用JUnit,而是学习一些教程。例如:@tnw但是如何通过“getEngine()”获取“getEngineSize()”的值并将其作为引擎类型返回?如何在ModelT类中返回public double getEngineSize()的值?@Tayyab I#已经更新了答案。。。你有一个ModelT类的对象,里面是一个引擎,里面是一个double。。。因此,您可以调用getter,直到获得该值:)public Engine getEngine(){ModelT foo=new ModelT();Engine e=foo.getEngine();double s=e.getEngineSize();return s;}如何返回public double getEngineSize()的值在ModelT类中,您必须理解getEngineSize返回引擎的属性。所以你的引擎已经知道尺寸了。因此,您可以将返回类型从Engine更改为Double,因为EngineSize是Double;在测试中,它显示了这个错误;对于Double类型,未定义getEngineSize()方法
public class ModelT {
    public Engine getEngine() {
        return new Engine();
    }
}