Java: доступ к классу внутри метода

Предполагается сделать фоновое изображение доступным для дочерних элементов элемента, для которого он указан, для таких вещей, как эффекты фильтра, которые смешивают контент с фоном (могут быть другие применения, но это тот, который я знаю). Если у вас его нет, то технически элемент не может использовать фоны, созданные предками. Единственным крупным браузером, поддерживающим его, является IE10 +, поэтому он не очень сильно используется. (Он также присутствует в качестве шаблона в каждом экспорте SVG Illustrator - без уважительной причины.)

-3
задан ernest_k 5 March 2019 в 10:52
поделиться

5 ответов

Вы уверены, что вам нужен класс?

Может быть, достаточно простого объявления поля:

   public class ABC extends CDE implements EFG {
        public String testValue;
        public String anotherValue;


        public void firstMethod(String valueOne, String valueTwo) {
             // do whatever you wish with testValue and anotherValue
        }

        public void readMethod() {        
            // here you have access to both variables        
        }

    }
0
ответ дан Pavel Smirnov 5 March 2019 в 10:52
поделиться

Все, что вы хотите сделать, это создать POJO , который содержит testValue и anotherValue и объявить класс вне вашего класса компонента, например:

class ExampleBean {
  private String testValue;
  private String anotherValue;

  //getters and setters
}

готово, вы можете сохранить ссылку этого класса в свой класс компонентов и получить доступ к значению, например:

public class ABC extends CDE implements EFG {
    ExampleBean exampleBean = new ExampleBEan();
    public void firstMethod(valueOne, valueTwo) {
        exampleBean.setValueOne(valueOne);
        exampleBean.setAnotherValue(valueTwo);
    }

    public void readMethod() {
        String value = exampleBean.getValueOne();
    }
}
0
ответ дан Darshan Mehta 5 March 2019 в 10:52
поделиться

Сделать локальный класс глобальным и установить / прочитать значения через экземпляр:

public class ABC extends CDE implements EFG {

    class TestClass {
        public String testValue = valueOne;
        public String anotherValue = valueTwo;
    }
    private testClassInstance = new TestClass()

    public void firstMethod(valueOne, valueTwo) {
         testClassInstance.testValue = valueOne
         testClassInstance.anotherValue = valueTwo
    }

    public void readMethod() {
        System.out.println(testClassInstance.valueOne)
        System.out.println(testClassInstance.valueTwo)
    }
}
0
ответ дан Caner 5 March 2019 в 10:52
поделиться

Может быть, это будет соответствовать вашим критериям? То, о чем вы сейчас просите, невозможно из-за объема внутреннего класса.

Вы также можете инициализировать этот закрытый экземпляр класса в своем конструкторе.

public class Sample {
    class TestClass {
        public String testValue;
        public String anotherValue;
    }

    private TestClass localTest = new TestClass();

    public void firstMethod(valueOne, valueTwo) {
        localTest.testValue = valueOne;
        localTest.anotherValue = valueTwo;
    }

    public void readMethod() {
        localTest.testValue = "test1";
        localTest.anotherValue = "anotherValue";

        System.out.println(localTest.testValue);
    }
}
0
ответ дан Jonaswg 5 March 2019 в 10:52
поделиться

Вы объявляете класс с помощью метода, что неправильно

Вам необходимо понять, что на самом деле означают класс и метод (Google Java OOP):

1- Вы должны создайте класс и объявите переменные, которые вы хотите

2- создайте конструкторы для значений по умолчанию

3- сделайте установщики, чтобы установить (назначить) эти значения

4- сделайте геттеры читать эти значения

0
ответ дан waghydjemy 5 March 2019 в 10:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: