Код: Выделить всё
def makebold(fn):
def wrapped():
return "" + fn() + "[/b]"[b] return wrapped
def makeitalic(fn):
def wrapped():
return "[i]" + fn() + "[/i]"
return wrapped
@makebold
@makeitalic
def hello():
return "hello world"
print hello() ## returns [i]hello world[/i][/b][b]Код: Выделить всё
public class Main {
public static void main(String[] args) {
Wrapper word = new BoldWrapper(new ItalicWrapper());
// display [i]hello world[/i][/b][b] System.out.println(word.make("Hello World"));
}
}
public interface Wrapper {
public String make(String str);
}
public class BoldWrapper implements Wrapper {
private Wrapper wrapper;
public BoldWrapper() {
}
public BoldWrapper(Wrapper wrapper) {
this.wrapper = wrapper;
}
@Override
public String make(String str) {
if(wrapper != null) {
str = wrapper.make(str);
}
return "" + str + "[/b]";[b] }
}
public class ItalicWrapper implements Wrapper {
private Wrapper wrapper;
public ItalicWrapper() {
}
public ItalicWrapper(Wrapper wrapper) {
this.wrapper = wrapper;
}
@Override
public String make(String str) {
if(wrapper != null) {
str = wrapper.make(str);
}
return "[i]" + str + "[/i]";
}
}
Код: Выделить всё
public class Main {
public static void main(String[] args) {
@BoldWrapper
@ItalicWrapper
String str = "Hello World";
// Display [i]Hello World[/i][/b][b] }
}
public @interface BoldWrapper {
public void wrap() default "" + str + "[/b]";
}
public @interface ItalicWrapper {
public void wrap() default "[i]" + str + "[/i]";
}
Пожалуйста, сообщите, если что-то не так с моим пониманием аннотации.
Подробнее здесь: https://stackoverflow.com/questions/120 ... or-in-java