java tentant d'assigner plus faible accès privilège d'erreur
[javac] U:\dms-webui-testing\test-java\dmswebui\CR\TestLogin.java:16: until() in cannot override until() in com.thoughtworks.selenium.Wait; attempting to assign weaker access privileges; was public
J'obtiens l'erreur ci-dessus pour un code assez simple:
package dmswebui.CR;
import org.infineta.webui.selenium4j.MainTestCase;
public class TestLogin extends MainTestCase {
@Override
public void setUp() throws Exception {
super.setUp();
startSeleniumSession("ChromeDriver", "somesite");
}
public void testMethod() throws Exception {
new Wait("") {boolean until() {return false;}};session().open("/");
new Wait("") {boolean until() {return false;}};session().click("id=btnLogin-button"); session().waitForPageToLoad("30000");
for (int second = 0;; second++) {
if (second >= 60) fail("timeout 'waitForTextPresent:Logoff' ");
try { if (session().isTextPresent("Logoff")) break; } catch (Exception e) {}
Thread.sleep(1000);
}
new Wait("") {boolean until() {return false;}};session().click("id=btnUserLogout-button");
new Wait("") {boolean until() {return false;}};session().click("id=yui-gen0-button"); session().waitForPageToLoad("30000");
}
public void tearDown() throws Exception {
super.tearDown();
closeSeleniumSession();
}
}
ici est comment je Attendre de la classe. S'il vous plaît aidez-moi à comprendre cette erreur.
On dirait qu'ils fournissent un mauvais exemple dans leur propre javadoc 😉
OriginalL'auteur riship89 | 2012-07-24
Vous devez vous connecter pour publier un commentaire.
Les lignes avec le problème sont les deux ci-dessous
Vous essayez de remplacer le
until
méthode qui apublic
accès à lacom.thoughtworks.selenium.Wait
classe par ununtil
méthode qui est seulement package visible.Vous ne pouvez pas remplacer une méthode et réduire la visibilité. Vous ne pouvez augmenter la visibilité (par exemple, remplacement d'une
protected
de la méthode et de la rendrepublic
)Donc la solution serait d'ajouter le
public
mot-clé de ces méthodesOui, tu veux dire que je ne peut qu'accroître la visibilité. remplacement d'une méthode protégée et en les rendant publiques, mais pas de paquet. Je pense paquet modificateur peut accroître la visibilité de la protégée, je suis bon pour cette compréhension?
non, ce n'est pas correct. Protégé méthodes sont visibles pour toutes les classes, aussi les sous-classes à l'extérieur du colis. Afin de faire de ce paquet visible permettrait d'augmenter la visibilité de certains cas (une autre classe du même package), mais de réduire la visibilité ainsi que dans d'autres cas (sous-classe dans un autre package).
Facile à dire, javac ne compile pas, donc il n'est pas totalement une expansion de la visibilité.
OriginalL'auteur Robin