powered by simpleCommunicator - 2.0.30     © 2024 Programmizd 02
Map
Форумы / Java [игнор отключен] [закрыт для гостей] / Как отследить вызов метода?
25 сообщений из 28, страница 1 из 2
Как отследить вызов метода?
    #39943879
Фотография Dr.Hofmann
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все привет!
В классе на скрине ниже, вызывается метод getAttributeValues() при инициализации коллекции в методе findAttrbute. В этом же классе есть метод этот метод getAttributeValues(), но он не запускается, а вызывается где-то еще.
Подскажите пожалуйста , как в intellij idea отследить в каком месте программы, реализации происходит вызов getAttributeValues()?
Спасибо!
...
Рейтинг: 0 / 0
Как отследить вызов метода?
    #39943887
Synoptic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сгенерить исключение в getAttributeValues() и посмотреть стектрейс?
...
Рейтинг: 0 / 0
Как отследить вызов метода?
    #39943906
Фотография Dr.Hofmann
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторSynoptic,Сгенерить исключение в getAttributeValues() и посмотреть стектрейс?

Как это сделать ?
...
Рейтинг: 0 / 0
Как отследить вызов метода?
    #39943913
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Synoptic,
Пошаговая отладка?
...
Рейтинг: 0 / 0
Как отследить вызов метода?
    #39943953
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не работает если вызов идет через рефлексию.
...
Рейтинг: 0 / 0
Как отследить вызов метода?
    #39943970
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На самом деле бросать эксцепшен не обязательно. Вы можете сформировать стектрейс и без этого.

Вот как тут пишут https://javaswing.wordpress.com/2010/01/02/stacktrace_using/
...
Рейтинг: 0 / 0
Как отследить вызов метода?
    #39943995
Фотография Dr.Hofmann
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonНа самом деле бросать эксцепшен не обязательно. Вы можете сформировать стектрейс и без этого.

Вот как тут пишут https://javaswing.wordpress.com/2010/01/02/stacktrace_using/


Код: java
1.
2.
3.
4.
5.
6.
7.
8.
StackTraceElement[] stackTraceElements = Thread.currentThread().getStackTrace();
String message = "";
if(stackTraceElements.length >= 3) {
    StackTraceElement element = stackTraceElements[2];
    String className = element.getClassName();
    String methodName = element.getMethodName();
    message = className + ": " + methodName;
}



Ой, а как это должно выглядеть с моим кодом? , какие строки добавлять из всего этого ?
...
Рейтинг: 0 / 0
Как отследить вызов метода?
    #39943996
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В геттер и добавь.
...
Рейтинг: 0 / 0
Как отследить вызов метода?
    #39943998
Фотография Dr.Hofmann
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так ?
...
Рейтинг: 0 / 0
Как отследить вызов метода?
    #39944000
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ты прикалываешся скрины делать? Как я могу по картике сделать правки или компилляцию?

Напиши чортов код как здесь.

Код: java
1.
2.
3.
public class ... {

}
...
Рейтинг: 0 / 0
Как отследить вызов метода?
    #39944001
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,
он прикалывается.
...
Рейтинг: 0 / 0
Как отследить вызов метода?
    #39944003
Фотография Dr.Hofmann
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp,извините
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
@MappedSuperclass
public abstract class AbstractDomainEntity implements DomainEntity<Long>, Copyable {


    @Transient
    public boolean isAttributeValue(String attributeName) {
        return  findAttribute(attributeName) != null;
    }

    private AttributeValue findAttribute(String name) {
        System.out.println("Enter into the findAttribute");
        if (name == null) {
            return null;
        }

        Collection<AttributeValue> attributeValues = getAttributeValues();
        if (attributeValues == null) {
        	return null;
        }
	StackTraceElement[] stackTraceElements = Thread.currentThread().getStackTrace();
	String message = "";
		if(stackTraceElements.length >= 3) {
    			StackTraceElement element = stackTraceElements[2];
    			String className = element.getClassName();
    			String methodName = element.getMethodName();
    			message = className + ": " + methodName;
		}		
	System.out.println(message);
	}

@Transient
    public Collection<AttributeValue> getAttributeValues() {
        return null;
    }
...
Рейтинг: 0 / 0
Как отследить вызов метода?
    #39944008
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот так красивее форматирование.

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
        StringBuilder sb = new StringBuilder("Stacktrace dump: \n");
        for(StackTraceElement stackTraceElement : Thread.currentThread().getStackTrace()) {
            sb.append("\t")
                    .append(stackTraceElement.getClassName())
                    .append(":")
                    .append(stackTraceElement.getMethodName())
                    .append(":")
                    .append(stackTraceElement.getLineNumber())
                    .append("\n");
        }
        logger.info(sb.toString());
        // System.exit(0);
...
Рейтинг: 0 / 0
Как отследить вызов метода?
    #39944014
Фотография Dr.Hofmann
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,
Как его правильно читать ?
Выводится дальнейшая последовательность вызовов(шагов работы программы), после выполнения getAttributeValues?
Сверху вниз?
или я ошибаюсь и наоборот ?
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Stacktrace dump: 
	java.lang.Thread:getStackTrace:1592
	ru.sample.cc.domain.AbstractDomainEntity:findAttribute:88
	ru.sample.cc.domain.AbstractDomainEntity:getAttributeValue:63
	ru.sample.cc.domain.AbstractDomainEntity:getAttributeValue:117
	sun.reflect.NativeMethodAccessorImpl:invoke0:-2
	sun.reflect.NativeMethodAccessorImpl:invoke:57
	sun.reflect.DelegatingMethodAccessorImpl:invoke:43
	java.lang.reflect.Method:invoke:607
	org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer:invoke:197
...
Рейтинг: 0 / 0
Как отследить вызов метода?
    #39944016
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так же как и в стандартном Exception. Снизу вверх идут последовательность вызовов.
...
Рейтинг: 0 / 0
Как отследить вызов метода?
    #39944018
Фотография Dr.Hofmann
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,

авторТак же как и в стандартном Exception. Снизу вверх идут последовательность вызовов.
ой, ну а мне то нужно то что после,
Код: javascript
1.
ru.sample.cc.domain.AbstractDomainEntity:getAttributeValue:63


те получается ваш снипет кода добавляется в 64 строку здесь после вызова 63, и тогда он мне все покажет, так ?
...
Рейтинг: 0 / 0
Как отследить вызов метода?
    #39944019
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Объясни как ты себе понимаешь "после".
...
Рейтинг: 0 / 0
Как отследить вызов метода?
    #39944022
Фотография fixxer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если хочешь узнать откуда вызывается getAttributeValues, так и стектрейс нужно из него выводить.

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
@Transient
public Collection<AttributeValue> getAttributeValues() {
        StringBuilder sb = new StringBuilder("Stacktrace dump: \n");
        for(StackTraceElement stackTraceElement : Thread.currentThread().getStackTrace()) {
            sb.append("\t")
                    .append(stackTraceElement.getClassName())
                    .append(":")
                    .append(stackTraceElement.getMethodName())
                    .append(":")
                    .append(stackTraceElement.getLineNumber())
                    .append("\n");
        }
        logger.info(sb.toString());
        return null;
}
...
Рейтинг: 0 / 0
Как отследить вызов метода?
    #39944036
Фотография Dr.Hofmann
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fixxer,

fixxerЕсли хочешь узнать откуда вызывается getAttributeValues, так и стектрейс нужно из него выводить.
Он не заходит в этот метод, вызывается где-то в другом месте, где не знаю, поэтому и задал здесь вопрос.
...
Рейтинг: 0 / 0
Как отследить вызов метода?
    #39944069
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хибернейт его вызывает.
...
Рейтинг: 0 / 0
Как отследить вызов метода?
    #39944098
Фотография Dr.Hofmann
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,

maytonХибернейт его вызывает.
Как это увидеть?
...
Рейтинг: 0 / 0
Как отследить вызов метода?
    #39944104
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dr.Hofmann, если ты решил начать изучение Хибернейта с такого подхода - то это плохо.

На самом деле твоя проблема - другая. Расскажи настоящую проблему в терминах
бизнес-задачи - и тебе дадут дельные советы.
...
Рейтинг: 0 / 0
Как отследить вызов метода?
    #39944105
Фотография Dr.Hofmann
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,

авторDr.Hofmann, если ты решил начать изучение Хибернейта с такого подхода - то это плохо.

На самом деле твоя проблема - другая. Расскажи настоящую проблему в терминах
бизнес-задачи - и тебе дадут дельные советы.

В коде разбираюсь, вот основная задача.
Мне советы не нужны мне нужно разобрать в вопросе. Если тебе нечего писать не пиши, другие напишут.
...
Рейтинг: 0 / 0
Как отследить вызов метода?
    #39944108
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как будет угодно.
...
Рейтинг: 0 / 0
Как отследить вызов метода?
    #39944110
Synoptic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dr.Hofmann
Если тебе нечего писать не пиши, другие напишут.
После таких слов уже врятли будут нормальные советы.
Ну и как бы Хофман не должен задавать вопросы про Джаву
...
Рейтинг: 0 / 0
25 сообщений из 28, страница 1 из 2
Форумы / Java [игнор отключен] [закрыт для гостей] / Как отследить вызов метода?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]