Erro ao chamar uma classe de outra

Olá a todos,
Sou novo neste Forum e também sou novo no Java.

Estou com dificuldades com um software que estou tentando fazer.

Bom é o seguinte tenho uma Classe a seguinte classe:

public double getP(String symbol) {
if (con != null) {
try {
Statement stmt = con.createStatement();
String sql = "SELECT * FROM stocks WHERE NAME='
+ symbol + "'";
ResultSet rs = stmt.executeQuery(sql);
if (rs.next()) {
return rs.getDouble("VALUE");
}
return -1;
} catch (Exception e) {
}
}
return -2;
}

Em outra classe estou tentando chamar a getP e passando os paramentros para realizar a consulta,
Mas está dando um erro.

Olha só como estou fazendo:


import jv.pj.StockServiceStub.GetPriceResponse;

public static void main(String[] args) throws RemoteException {
		StockServiceStub stub = new StockServiceStub();
		String nome = new string();
			GetPriceResponse resp = stub.GetP(nome);
		System.out.println("Nome = " + resp.get_return());
	}

O erro que aparece é o seguinte:
[color=red]the method GetP in the type stockservicestub is not applicable for the arguments (string)[/color]

na linha que tem o codigo GetPriceResponse resp = stub.GetP(nome);

O que estou fazendo de errado?

Obrigado.

1o - Java é Case Sensitive, ou seja, String != string.
2o - String não é um objeto, e sim um tipo, não tem necessidade de construtor.

public static void main(String[] args) throws RemoteException { StockServiceStub stub = new StockServiceStub(); //String nome = new string(); String nome = "" GetPriceResponse resp = stub.GetP(nome); System.out.println("Nome = " + resp.get_return()); }

Sua query deveria estar assim:

[code]
//Não é assim
/* String sql = "SELECT * FROM stocks WHERE NAME=’

  • symbol + “’”; */
    //É assim
    String sql = “SELECT * FROM stocks WHERE NAME=’”
  • symbol + “’”;[/code]

Recomendo também usar PreparedStatement ao invés de Statement.

[quote=Renatobh]1o - Java é Case Sensitive, ou seja, String != string.
2o - String não é um objeto, e sim um tipo, não tem necessidade de construtor.

public static void main(String[] args) throws RemoteException { StockServiceStub stub = new StockServiceStub(); //String nome = new string(); String nome = "" GetPriceResponse resp = stub.GetP(nome); System.out.println("Nome = " + resp.get_return()); }

Sua query deveria estar assim:

[code]
//Não é assim
/* String sql = "SELECT * FROM stocks WHERE NAME=’

  • symbol + “’”; */
    //É assim
    String sql = “SELECT * FROM stocks WHERE NAME=’”
  • symbol + “’”;[/code]

Recomendo também usar PreparedStatement ao invés de Statement.[/quote]

Java suporta uma notação especial para criação de Strings mas elas continuam sendo objetos.

http://download.oracle.com/javase/6/docs/api/java/lang/String.html

É, falha minha :oops:

Mas eu acho mais fácil você usar

String var = “valordavar” do que criar um vetor de char para criar uma String via String = new String(char vetordechar[]);

:roll:

[quote=Renatobh]1o - Java é Case Sensitive, ou seja, String != string.
2o - String não é um objeto, e sim um tipo, não tem necessidade de construtor.

public static void main(String[] args) throws RemoteException { StockServiceStub stub = new StockServiceStub(); //String nome = new string(); String nome = "" GetPriceResponse resp = stub.GetP(nome); System.out.println("Nome = " + resp.get_return()); }

Sua query deveria estar assim:

[code]
//Não é assim
/* String sql = "SELECT * FROM stocks WHERE NAME=’

  • symbol + “’”; */
    //É assim
    String sql = “SELECT * FROM stocks WHERE NAME=’”
  • symbol + “’”;[/code]

Recomendo também usar PreparedStatement ao invés de Statement.[/quote]

Valew pela dica da String. já arrumei mas mesmo assim o erro ainda não saiu… fica o erro no stub.GetP(nome).

Estou achando que o erro está no GetP.

Tentei mudar assim

//No lugar do String nome = ""
// coloquei
GetP nome = String;
			
GetPriceResponse resp = stub.getP(nome);

O erro saiu do stub.getP(nome), só que apareceu um erro onde está String.
o erro é esse >> [color=red]String cannot be resolved to a variable[/color]

Sobre a String sql aqui no meu código estava correto, devo ter apagado as aspas conforme inclui aqui no fórum.rsrsrs. mas mesmo assim valew.

Funciona assim:

TipodaVariavel NomedaVariavel = AlgumaCoisa

ou seja

String Nome = “Joãozinho da Silva”

Sua chamada no main tem que ficar assim:

[code]String nome = “Joãozinho da Silva”;
Double resp = stub.getP(nome);
System.out.println(resp);

//Você pode simplificar isso usando “System.out.println(stub.getP(nome));”
[/code]

Já corrigi outro erro, porque sua função retorna um double, e você está chamando ela numa variável do tipo “GetPriceResponse” (!?)

Ai ele vai fazer uma busca na tabela stocks e retornar um double.

Valew pessoal, consegui…

Obrigado.