Другое решение. Вы можете просто перебирать объектные ключи так, вы должны сначала создать экземпляр объекта:
printTypeNames<T>(obj: T) {
const objectKeys = Object.keys(obj) as Array<keyof T>;
for (let key of objectKeys)
{
console.Log('key:' + key);
}
}
Я не знаю, поможет ли это вам.
private long timeMillions = 0;
public void doSomething(){
// if within 5 seconds
if(System.currentTimeMillis() < timeMillions + 5 * 1000){
//retrun or do some thing else
return;
}else{
// after 5 seconds
timeMillions = System.currentTimeMillis();
System.out.println("do something");
}
}
Самый простой способ без использования потоков, таймеров и т. Д. - это взять текущее время при вызове метода и сохранить его. При следующем звонке вы сравниваете новое текущее время со старым. Если 5 секунд не прошло, ничего не делайте.
, например,
long lastCall = 0;
void doSomething()
{
long now = secondsSinceEpoch();
if (lastCall == 0 || now-lastCall > 5)
{
// Do stuff
// lastCall = now
}
}