Pessoal… mais um problema…
Estou lendo via teclao o seguinte código:
System.out.print("Informe o No inicial: ");
String xNoInicial = teclado.readLine();
arestaAtual.setNoInicial(xNoInicial);
mas acusa o seguinte erro:
setNoInicial(No) in Aresta cannot be applied to (java.lang.String)
imagino porque estou lendo uma variável String… e jogando
ela numa variavel do tipo Objeto (no)…
desculpem… mas estou somente a 02 semanas… programando
e já tenho esse problema para resolver… obrigado a todos
que leram essa mensagem… e especialmente para quem responder…
obrigado
Oi
Somuca, posta aí o código do teu método setNoInicial() …
Assim vai ficar fácil resolver…
T+
Segue o código da classe No !!
import java.util.ArrayList;
/**
* Classe NO
*
* @author Rogério e Jean
* @version 1.10
*/
public class No
{
//Variáveis
private String nomeNo;
private double custo;
private String tipo;
private ArrayList arestaNo = new ArrayList();
//Construtor
public No()
{
nomeNo = null;
custo = 0;
tipo = null;
}
public No(String novoNomeNo, double novoCusto, String novoTipo){
nomeNo = novoNomeNo;
custo = novoCusto;
tipo = novoTipo;
}
//Métodos
public boolean setNomeNo(String novoNomeNo){
nomeNo = novoNomeNo;
return true;
}
// informa Custo (Maior ou igual a zero)
public boolean setCusto(double novoCusto) {
if ( novoCusto >= 0 ){
custo = novoCusto;
return true;
} else {
return false;
}
}
// informa Tipo ("inicial","intermediario","final")
public boolean setTipo(String novoTipo) {
if ( novoTipo.equals("inicial") ||
novoTipo.equals("intermediario") ||
novoTipo.equals("final")) {
tipo = novoTipo;
return true;
} else {
return false;
}
}
public String getNomeNo(){
return nomeNo;
}
public double getCusto(){
return custo;
}
public String getTipo(){
return tipo;
}
public ArrayList getArestaNo(){
return arestaNo;
}
// Adiciona
public boolean adicionaArestaNo(Aresta novaAresta) {
arestaNo.add(novaAresta);
return true;
}
}
desculpe… mas está na classe aresta… segue !!
public class Aresta
{
//Variáveis
private String nomeAresta;
private double custo;
private No noInicial;
private No noFinal;
//Construtor
public Aresta()
{
custo = 0;
noInicial = null;
noFinal = null;
}
public Aresta(String novoNomeAresta, double novoCusto, No novoNoInicial, No novoNoFinal){
nomeAresta = novoNomeAresta;
custo = novoCusto;
noInicial = novoNoInicial;
noFinal = novoNoFinal;
}
//Métodos
public boolean setNomeAresta( String novoNomeAresta){
nomeAresta = novoNomeAresta;
return true;
}
// informa Custo (Maior ou igual a zero)
public boolean setCusto(double novoCusto) {
if ( novoCusto >= 0 ){
custo = novoCusto;
return true;
} else {
return false;
}
}
// Nó Incial
public boolean setNoInicial(No novoNoInicial) {
noInicial = novoNoInicial;
return true;
}
// Nó Final
public boolean setNoFinal(No novoNoFinal) {
noFinal = novoNoFinal;
return true;
}
public String getNomeAresta(){
return nomeAresta;
}
public double getCusto(){
return custo;
}
//Devolve o atributo no inicial do objeto em uso.
public No getNoInicial() {
return noInicial;
}
//Devolve o atributo no final do objeto em uso.
public No getNoFinal() {
return noFinal;
}
}
mas como faço para guardar o valor digitado do noInicial ???
tenta isso:
System.out.print("Informe o nome do No inicial: ");
String xNoInicialNome = teclado.readLine();
System.out.print("Informe o custo do No inicial: ");
double xNoInicialCusto = Double.parseDouble(teclado.readLine());
System.out.print("Informe o tipo do No inicial: ");
String xNoInicialTipo = teclado.readLine();
arestaAtual.setNoInicial(new No(xNoInicialNome, xNoInicialCusto, xNoInicialTipo));
Nâo está faltando alguma coisa?! :roll:
Onde que está o método setNoInicial()???
O método setNoInicial recebe um objeto do tipo No, e não do tipo String.