То, что вы описываете, называется getter
методом.
Вы можете добавить метод получения к вашему Main
, но сначала прочтите это -> http://www.javaworld.com/javaworld/jw-09-2003/jw-0905-toolbox.html
Вотпример.
public class Main Extends PApplet {
...
public boolean getSomeObject ( )
{
return someObject;
}
}
public class Interaction {
PApplet p;
public Interaction(PApplet parent){
p = parent;
}
public void mousePressed() {
if( p.getSomeObject( ) ) {
//do something
}
}
}
Кстати, boolean
- это не Object
в Java, Boolean
- это.
EDIT После вашего комментария я действительно понимаючто вам нужно.
Вам необходимо создать interface
и передать этот интерфейс конструктору Interaction
.
Этот интерфейс должен предоставлять весь метод, необходимый вашему Interaction
.Если ему нужен доступ к PApplet
, то это то, что должен предоставить ваш интерфейс.
Имея это в виду, вот новая иерархия:
public interface IInteractionContext
{
boolean getSomeObject( );
}
public class Main
extends PApplet
implements IInteractionContext
{
@Override
public boolean getSomeObject ( )
{
return someObject;
}
...
}
public class Main Extends PApplet {
...
public boolean getSomeObject ( )
{
return someObject;
}
}
public class Interaction {
final IInteractionContext ctx;
public Interaction(IInteractionContext ctx)
{
this.ctx = ctx;
}
public void mousePressed() {
if( ctx.getSomeObject( ) )
{
//do something
}
}
}
С этими изменениями, Interaction
может быть все равно, если ctx
равно Main
, PApplet
или Unicorn
.Его конструктор запрашивает ожидаемое поведение, и ваша реализация Main
обеспечивает такое поведение во время выполнения.
В любом случае прочитайте статью javaworld и связанные с ней статьи.Также читайте статьи о Dependency Injection