繁体   English   中英

数组返回一个字符串而不是一个对象

[英]array return a String and not an Object

你好,我不得不做出一个程序首先我询问日志代码我把try/catch ,因为我想要的密码是唯一的号码,如果给一个字符来刺激异常,secont不显示对象的数组Product ,但一个字符串Productl@pos51sd ,我找不到为什么给我看这个。

import java.rmi.Naming;
import java.util.Scanner;


public class RMIClient {

    /**
     * @param args
     */
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
                int pin=0;
        try {   

            String  name    =   "//Localhost/RMI_Server";
            Functions lp    =(Functions)Naming.lookup(name);
            try{
            System.out.println("Please give your Personal Code (PIN)");

                        pin=in.nextInt();
             }catch (NumberFormatException nfe) {
                    System.out.println("Input must be a number.");
                            }
            if(lp.validate(pin)){
            System.out.println("Give description of item");
            String desc=in.next();
                        int sizep=lp.search(desc).length;
                        Product [] p =new Product[sizep];
                        System.arraycopy(lp.search(desc),0,p,0,sizep);
                        for(int i=0;i<sizep;i++){
            System.out.println(p[i].toString());}
            System.out.println("Give numberCode of item you want to buy");
            String code=in.next();
            System.out.println(lp.purchase(code));
            }else{
            System.out.println("Your code is False");}
            lp.close();
        }catch (Exception   e)  {
             System.out.println("SumClient  err:    " + e); 
             System.exit(1);
        }   
    }   
}

它打印toString()方法的结果。

您可以在System.out上找到有关打印例外的一些详细信息。 在Java中http://alvinalexander.com/blog/post/java/java-exception-printing-log4j

不幸的是,您没有向我们展示Product类,但是您实际想要做的是根据您的要求在此类中实现toString()方法。 我不知道pos51sd是什么,只是为了讨论,我们将包含此值code变量称为。

在这种情况下,您的类Product应该如下所示:

class Product {
    .....
    private String code;
    .......

    public String toString() {
        return getClass().getSimpleName() + "@" + code;
    }
} 

类Product'import java.io.Serializable;

公共类产品实现了Serializable {

private String description;
private String serialNum;
private float price;
private String company;

public Product(String description,String serialNum,float price,String company){
this.description=description;
this.serialNum=serialNum;
this.price=price;
this.company=company;       
}

public void set_description(String description){this.description=description;}
public String get_description(){return description;}
public void set_serialNum(String serialNum){this.serialNum=serialNum;}
public String get_serialNum(){return serialNum;}
public void set_price(float price){this.price=price;}
public float get_price(){return price;}
public void set_company(String company){this.company=company;}
public String get_company(){return company;}



public String toSting(){
    return "Item "+ serialNum +" is product from "+ company +" price " + price +"E Description: ( "+ description +" )";

}

}'

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM