1

如何制作一种同时打印整数和字符串的方法?我试过了

public static void print(String txt){
    System.out.println(txt);
}

这样我只能打印字符串。

对不起我的问题,但我尝试搜索,但没有(我可能使用了错误的关键字)

感谢提前。

4

7 回答 7

4

除了不同的签名,你也可以只使用一个泛型参数,比如一个 Object,让 Java 为你做一些自动装箱

class Untitled {

    public static void main(String[] args) 
    {
        U.log("test");
        U.log(45);
    }

    // U(tility)
    public static class U
    {
        public static void log( Object o )
        {
            System.out.println( o.toString() );            
        }
    }
}

在我从事的每个基于 Java 的项目中,我都使用其中一种参数,它采用任意数量的参数。

于 2013-10-01T17:49:29.430 回答
3

您可以拥有具有相同方法名称的不同签名。

public static void print(String txt){
    System.out.println(txt);
}
public static void print(int txt){
    System.out.println(txt);
}

您甚至可以“解析”或“清理”参数以使用相同的逻辑结束并减少代码.. 像这样:

public static void print(String txt){
    System.out.println(txt);
}
public static void print(int number){
    print(Integer.toString(number));
}
于 2013-10-01T17:46:32.080 回答
2

重载它。

public static void print (String txt) {
    System.out.println(txt);
}

public static void print (int txt) {
    System.out.println(txt);
}

或者toString在使用 Object方法将所有值传递给函数之前将其转换为字符串。

于 2013-10-01T17:48:19.213 回答
1

您需要查看的内容称为method overloading. 重载方法是名称相同但方法签名不同的方法。这将允许您对不同的数据执行相同的操作。

例如,计算各种 2D 形状的面积。您可以使用一种方法:

public void area(int length,int breadth){ // for rectangle and squares
    //logic here
}

另一个是这样的:

public void area(int radius){ // guess who ?
    //logic here
}

现在,根据您的需要,调用相应的方法。

这应该是对已经发布的答案的补充porfiriopartida

这是教程:http ://docs.oracle.com/javase/tutorial/java/javaOO/methods.html



话虽如此,您还有另一个选择是使用Object类作为方法的参数。Object是所有 Java 类的老大。
教程:http: //journals.ecs.soton.ac.uk/java/tutorial/java/javaOO/objectclass.html

于 2013-10-01T17:52:09.797 回答
0
Using generics
----------------
package simlpe;

public class simple
{                        
   public static < E > void print( E input)
   {

         System.out.println(input);
    }

    public static void main( String args[] )
    {
        // Creates a  Integer, Double and Character
        Integer A = 1;
        Double d = 1.1;
        Character ch = 'H';


        print( A ); // pass an Integer
        print( d ); // pass a Double 
        print( ch ); // pass a Character 
    } 
}
于 2013-10-01T18:03:11.823 回答
0

您可以使用 Object 对象。它是所有 java 对象的通用类。

public static void print(Object txt){
    System.out.println(txt);
}
于 2013-10-01T17:51:58.427 回答
0
class SamplePrint
{

  public static void main(String txt)
  {
    System.out.println(txt);
  }

  public static void main(int txt)
  {
    System.out.println(txt);
  }

  public static void main(String args[])
  {
    // This will automatically calls to print() which has string type arguments
    print("Hello Friend");

    // This will automatically calls to print() which has int type arguments
    print(100);
  }
}
于 2013-10-01T18:39:34.637 回答