Usar uma classe fora do package

3 respostas
_

Ola. Estou a desenvolver um programa em java e no ficheiro .java que estou a editar quero aceder a uma class que pertence a outro package. No entanto esta classe que estou a editar tenho o ‘import’ do package que contem a class que eu quero usar, so que quando faço uso dessa classe que eu quero aparece uma mensagem de erro a dizer:" A classe DTReader.java is not public in com.merl.diamondtouch; cannot be accessed outside the package"

entenda-se que com.mer.diamondtouch é o package da classe que eu quero aceder. O que tenho de fazer para poder aceder a esse ficheiro java? Ja tornei a classe publica mas nao resulta :confused:

desde já obrigado pela vossa atençao

3 Respostas

ramilani12

Olá Seven provavelmente está classe está com especificador de acesso como protected vc precisa mudar para Public para que essa classe seja visivel em outro pacote.

O protected a classe metodos atributos somente são visiveis no mesmo pacote.

Especificadores de acesso:
De uma olhada nesse link que irá te ajudar:
http://java.sun.com/docs/books/tutorial/java/javaOO/accesscontrol.html

rissato

é problema de acesso mesmo. Essa classe deve ser protected ou private. Caso essa classe seja de alguma API que vc está utilizando, talvez vc não deva utilizá-la, e sim alguma outra classe ou método “factory” de alguma classe da mesma API.

fsquadro

Seven,

A sua classe provavelmente está declarada como default.
Você tem que declara-la como public para que você possa ve-la em outros pacotes.

Sua classe deve estar assim:

class DTReader {
// código
}

Declare ela como pública, assim:

public class DTReader {
// código
}
Criado 24 de maio de 2007
Ultima resposta 24 de mai. de 2007
Respostas 3
Participantes 4