/* package whatever; // don't place package name! */
import java.util.* ;
import java.lang.* ;
import java.io.* ;
// Selenium
interface WebElement { }
interface FindsByXPath {
< T
extends WebElement
> List
< T
> findElementsByXPath
( String using
) ; }
// Appium Java Client
interface MobileDriver< T extends WebElement> extends FindsByXPath {
List
< T
> findElementsByXPath
( String xPath
) ;
void execute
( String driverCommand, Map
< String ,
?> parameters
) ;
}
// Our Framework
interface IFrameworkBaseDriver extends FindsByXPath { }
interface IFrameworkMobileDriver extends
IFrameworkBaseDriver,
MobileDriver
{ }
class FrameworkMobileDriver implements IFrameworkMobileDriver {
@Override
public List
< WebElement
> findElementsByXPath
( String xPath
) { return null ;
}
@Override
public void execute
( String driverCommand, Map
< String ,
?> parameters
) { }
}
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
{
new FrameworkMobileDriver( ) .findElementsByXPath ( "" ) ;
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgovLyBTZWxlbml1bQppbnRlcmZhY2UgV2ViRWxlbWVudCB7fQoKaW50ZXJmYWNlIEZpbmRzQnlYUGF0aCB7CiAgICA8VCBleHRlbmRzIFdlYkVsZW1lbnQ+IExpc3Q8VD4gZmluZEVsZW1lbnRzQnlYUGF0aChTdHJpbmcgdXNpbmcpOwp9CgovLyBBcHBpdW0gSmF2YSBDbGllbnQKaW50ZXJmYWNlIE1vYmlsZURyaXZlcjxUIGV4dGVuZHMgV2ViRWxlbWVudD4gZXh0ZW5kcyBGaW5kc0J5WFBhdGggewogICAgTGlzdDxUPiBmaW5kRWxlbWVudHNCeVhQYXRoKFN0cmluZyB4UGF0aCk7CgogICAgdm9pZCBleGVjdXRlKFN0cmluZyBkcml2ZXJDb21tYW5kLCBNYXA8U3RyaW5nLCA/PiBwYXJhbWV0ZXJzKTsKCn0KCgovLyBPdXIgRnJhbWV3b3JrCmludGVyZmFjZSBJRnJhbWV3b3JrQmFzZURyaXZlciBleHRlbmRzIEZpbmRzQnlYUGF0aCB7fQoKaW50ZXJmYWNlIElGcmFtZXdvcmtNb2JpbGVEcml2ZXIgZXh0ZW5kcwogICAgICAgIElGcmFtZXdvcmtCYXNlRHJpdmVyLAogICAgICAgIE1vYmlsZURyaXZlcgp7fQoKY2xhc3MgRnJhbWV3b3JrTW9iaWxlRHJpdmVyIGltcGxlbWVudHMgSUZyYW1ld29ya01vYmlsZURyaXZlciB7CgogICAgQE92ZXJyaWRlCiAgICBwdWJsaWMgTGlzdDxXZWJFbGVtZW50PiBmaW5kRWxlbWVudHNCeVhQYXRoKFN0cmluZyB4UGF0aCkgewogICAgICAgIHJldHVybiBudWxsOwogICAgfQoKICAgIEBPdmVycmlkZQogICAgcHVibGljIHZvaWQgZXhlY3V0ZShTdHJpbmcgZHJpdmVyQ29tbWFuZCwgTWFwPFN0cmluZywgPz4gcGFyYW1ldGVycykgewogICAgfQp9CgovKiBOYW1lIG9mIHRoZSBjbGFzcyBoYXMgdG8gYmUgIk1haW4iIG9ubHkgaWYgdGhlIGNsYXNzIGlzIHB1YmxpYy4gKi8KY2xhc3MgSWRlb25lCnsKCXB1YmxpYyBzdGF0aWMgdm9pZCBtYWluIChTdHJpbmdbXSBhcmdzKSB0aHJvd3MgamF2YS5sYW5nLkV4Y2VwdGlvbgoJewoJCW5ldyBGcmFtZXdvcmtNb2JpbGVEcml2ZXIoKS5maW5kRWxlbWVudHNCeVhQYXRoKCIiKTsKCX0KfQ==
compilation info
Main.java:31: error: FrameworkMobileDriver is not abstract and does not override abstract method execute(String,Map) in MobileDriver
class FrameworkMobileDriver implements IFrameworkMobileDriver {
^
Main.java:39: error: name clash: execute(String,Map<String,?>) in FrameworkMobileDriver and execute(String,Map<String,?>) in MobileDriver have the same erasure, yet neither overrides the other
public void execute(String driverCommand, Map<String, ?> parameters) {
^
Main.java:38: error: method does not override or implement a method from a supertype
@Override
^
Note: Main.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
3 errors
stdout