将值传递给java中的另一个类

时间:2015-06-21 16:43:44

标签: java web-services rest

我在将用户输入的值传递给另一个类时遇到问题。这是一个网络服务,这就是为什么我不知道如何修复它,这是我第一次遇到wevservice。这是获取用户输入的代码。

PlateNumberCheck.java

    //PATH FOR CHECKING PLATE NUMBER

@Path("platecheck")  //for the url

public class PlateNumberCheck {
    public String anss;
@GET 
//To get the full url : http://Ipaddress:portnumber/@path/@getPath 
@Path("/check")
@Produces(MediaType.APPLICATION_JSON) 
//Produces is for the response of JSON.

public String check(@QueryParam("taxi_plate_no") String taxi_plate_no){
    String sagot = "";
    anss = taxi_plate_no;
    if(checkInput(taxi_plate_no)){
        display();
        sagot = JsonConstruction.JSONResponse("checked", true);
    } else{ 
        sagot = JsonConstruction.JSONResponse("checked", false, "Not in the database");
    }
    return sagot;
}

private boolean checkInput (String taxi_plate_no){
    System.out.println("Check Input");
    boolean output = false;
    if(JsonConstruction.isNotNull(taxi_plate_no)){
        try{
            output = DatabaseConnection.checkPlate(taxi_plate_no);
        } catch (Exception e){
            output = false;
        }
    } else{
        output = false;
    }

    return output;
}
public void display(){
    System.out.println(anss);

}
}

我认为这个课程有效。因为你可以看到我在成功之前首先使用该方法,并且该方法包含system.out.print,它在控制台中输出输入。这是我想要将输入传递给这个类的第二个类。

DisplayTaxiDetails.java

@Path("/displays")
public class DisplayTaxiDetails {
    String plates;
    @GET
    @Path("taxidetails")
    @Produces(MediaType.APPLICATION_JSON)

    public String taxidetails (){
        String taxidetails = null;
        ArrayList<Objects> taxiDetailsList = new ArrayList<Objects>();

        try{
            PlateNumberCheck plate = new PlateNumberCheck();
            plates = plate.anss;
            taxiDetailsList = new ArrayConnection().getTaxiDetails(plates);
            System.out.println(plates);
            Gson gson = new Gson();
            taxidetails = gson.toJson(taxiDetailsList);
        } catch (Exception e){
            e.printStackTrace();
        } 
        return taxidetails;

        }

    }

正如您所看到的,我调用了第一个类并访问了anss,它是存储输入的类的字符串。但当我访问它并尝试传递值时,它不起作用。我再次使用system.out.print来查看它是否打印数据,但它总是显示null,我认为第一类的值不会传递给第二类的变量。

1 个答案:

答案 0 :(得分:0)

您需要了解Java运行时环境的基础知识。这将解释您的对象如何相互绑定并可以相互交互。在您的情况下,每次调用第二个类中的方法时,您都在创建PlateNumberCheck的新实例。

PlateNumberCheck plate = new PlateNumberCheck();

对于那个实例,你没有在anss字段中设置任何值(顺便说一下,这也是不正确的方法,但是后面这个),因为这个实例刚刚创建。