Foro sobre Java SE > usar variable en método y clase diferente
Debes hacer uso de los metodos Setter y Getter...
En tu caso...el Getter
public class A {
private String variable;
....
public String getVariable() {
return variable;
}
}
public class B {
private String variable;..................................Aqui la guardaremos
private A objetoA;.........................................Instanciamos un objeto de la clase A
public B() {....................................................Metodo constructor
objetoA = new A();..................................Creamos el objeto de la clase A
this.variable = objetoA.getVariable();......Traemos la variable desde la clase A
}
}
Gracias @ju4n, funciona correctamente tu solución...
Ahora,
¿cómo asigno la variable "txtFile" del método getUdmComprobante a la variable "archivoTXT" del método getVariable?
Nota: Los 2 métodos pertenecen a la misma clase
public class mapeoCFDv2 extends AbstractSingleNodeMapeo{
public String getVariable() {
return archivoTXT;
}
private ComprobanteBean getUdmComprobante(Document cfdv2, File file){
...
File txtFile = new File("/CFDConnect/tmp/"+nombre+".txt");
...
return comprobante;
}
}
Saludos cordiales...
Tu variable archivoTXT es de tipo String, mientras que txtFile es de tipo File.
De entrada, deberías hacer de txtFile un campo de la clase:
private File txtFile;
private ComprobanteBean getUdmComprobante(Document cfdv2, File file){
...
txtFile = new File("/CFDConnect/tmp/"+nombre+".txt");
...
return comprobante;
}
Así su valor estará disponible para otros métodos. Otra cuestión es qué quieres que contenga la variable archivoTXT.
Deseo que la variable archivoTXT
contenga el archivo TXT de la variable txtFile
.
Gracias @choces & @ju4n 4 U time
En ese caso, debes leer el contenido del archivo txtFile para pasarlo a una variable de tipo String.
Un modo simple de conseguirlo:
BufferedReader br = new BufferedReader(new FileReader("file.txt"));
try {
StringBuilder sb = new StringBuilder();
String line = br.readLine();
while (line != null) {
sb.append(line);
sb.append("\n");
line = br.readLine();
}
String everything = sb.toString();
} finally {
br.close();
}
En esa variable everything estará el contenido del archivo de texto.
Entiendo lo que dices; sin embargo, el archivo TXT que deseo leer no siempre es el mismo, es decir, cambia constantemente el nombre del archivo...
private String getTexto(final String nombreArchivo) throws FileNotFoundException, IOException {
String texto;
final BufferedReader br = new BufferedReader(new FileReader(nombreArchivo));
try {
final StringBuilder sb = new StringBuilder();
String line = br.readLine();
while (line != null) {
sb.append(line);
sb.append("\n");
line = br.readLine();
}
texto = sb.toString();
} finally {
br.close();
}
return texto;
}
gracias @choses
Dadas las siguientes dos clases:
public class mapeoCFDv2 extends AbstractSingleNodeMapeo{
...
// método
private ComprobanteBean getUdmComprobante(Document cfdv2, File file){
...
File txtFile = new File("/CFDConnect/tmp/"+nombre+".txt"); <-- esta variable quiero usar
...
return comprobante;
}
}
public class extraeComentario {
...
// método
public static StringBuilder capturarTextoDeArchivo() {
File archivo = null; <-- aquí la quiero usar
...}
}
se desea usar el archivo TXT al que apunta la variable
File txtFile = new File("/CFDConnect/tmp/"+nombre+".txt")
, en la variableFile archivo = null
de la claseextraeComentario
E intentado creando un objeto de la clase, por parámetros, y en cada caso me genera error... ¿Cómo puedo solucionarlo?