2

我需要在我的 Android 游戏中使用“hypot”方法,但是 eclipse 说没有这样的方法。这是我的代码:

import java.lang.Math;//in the top of my file
float distance = hypot(xdif, ydif);//somewhere in the code
4

4 回答 4

21

首先,您根本不需要导入类型java.lang。已经有暗示import java.lang.*;了。但是导入一个类型只会通过它的简单名称使该类型可用。这并不意味着您可以在不指定类型的情况下引用方法。你有三个选择:

  • 为您想要的每个功能使用静态导入:

    import static java.lang.Math.hypot;
    // etc
    
  • 使用通配符静态导入:

    import static java.lang.Math.*;
    
  • 显式引用静态方法:

    // See note below
    float distance = Math.hypot(xdif, ydif);
    

另请注意,hypot返回double,而不是float- 所以您要么需要转换,要么制作distancedouble

// Either this...
double distance = hypot(xdif, ydif);

// Or this...
float distance = (float) hypot(xdif, ydif);
于 2012-08-04T10:22:13.353 回答
2
double distance = Math.hypot(xdif, ydif);  

或者

import static java.lang.Math.hypot;
于 2012-08-04T10:21:15.817 回答
0

要在没有它们所在类的情况下使用静态方法,您必须静态导入它。将您的代码更改为:

import static java.lang.Math.*;
float distance = hypot(xdif, ydif);//somewhere in the code

或这个:

import java.lang.Math;
float distance = Math.hypot(xdif, ydif);//somewhere in the code
于 2012-08-04T10:22:31.393 回答
0

1.首先java.lang.*已经包含,所以你不需要导入它。

2.要访问 Math 类中的方法,您可以执行以下操作...

-使用类名和点运算符访问静态方法。

Math.abs(-10);

-直接访问静态方法,然后你需要导入如下。

import static java.lang.Math.abs;

abs(-10);

于 2012-08-04T10:39:18.487 回答