我是来自 javascript 背景的 Java 新手。
在 javascript 中,我们可以将回调保存在像这样的对象中 -
//we register some callback on a keyword
var observerCallbacks = {};
registerObserverCallback = function(eventname ,callback){
observerCallbacks[eventname] = callback;
};
//For calling events
notifyObservers = function(eventname){
observerCallbacks[eventname]();
};
Run Code Online (Sandbox Code Playgroud)
用法 :
//Register event
registerObserverCallback('eventA',function(){
//body of callback
});
//For calling event
notifyObservers('eventA');
Run Code Online (Sandbox Code Playgroud)
我正在寻找 Java 中的同等功能。有没有办法创建这种类型的自定义功能。
我正在使用Samck 4.1.0-alpha库来创建Xmpp客户端.我创建了有效的用户.我试图通过代码发送消息.但得到错误.代码:
new Runnable(){
@Override
public void run() {
// TODO Auto-generated method stub
ConnectionConfiguration config = new ConnectionConfiguration("jabb3r.org", 5222, "jabb3r.org");
XMPPConnection connection = new XMPPTCPConnection(config);
try {
connection.connect();
connection.login("USERNAME", "PASSWORD");
// Assume we've created a XMPPConnection name "connection"._
ChatManager chatmanager = ChatManager.getInstanceFor(connection);
Chat newChat = chatmanager.createChat("neilneil@jabb3r.org", new MessageListener() {
public void processMessage(Chat chat, Message message) {
System.out.println("Received message: " + message);
}
});
try {
newChat.sendMessage("Howdy!");
}
catch (XMPPException e) {
System.out.println("Error Delivering block");
}
// ConnectionException.getFailedAddresses();
} catch …Run Code Online (Sandbox Code Playgroud) 我在angularjs.我试图在url中添加参数$location.search('sid', key);.key的值来自另一个服务器的http请求.这是append参数的代码.
.config(['$routeProvider',function ($routeProvider) {
$routeProvider
.when('/', {
templateUrl: 'test1.html',
controller: 'test1Controller'
})
.when('/message/:userId', {
templateUrl: 'test2.html',
controller: 'test2Controller'
})
.otherwise({
redirectTo: '/'
});
}])
.run(['$route', '$rootScope', '$location' ,'getAuthDetails', function($route, $rootScope, $location,getAuthDetails) {
var key;
getAuthDetails.get().then(function(data){
key = data.key;
$rootScope.query = 'sid='+key;
console.log($location.$$path);
$location.search('sid', key); //append parameter. This is calling controller twice
});
$rootScope.$on('$routeChangeSuccess', function () {
$rootScope.query = 'sid='+key;
});
}]);
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是.随着sid被添加到url中.该console.log放我test1Controller越来越调用两次.Sid用于连接套接字连接.
是否有任何解决方法在url追加后调用控制器.
我试图在每一页上附加一个树枝模板。
在 Drupal 7 中,我们基本上使用hook_page_alter
function hook_page_alter(&$page) {
$page['page_bottom']['devel']= array(
'#type' => 'markup',
'#markup' => '<div style="clear:both;">' . theme('TEST') . '</div>',
); // add test template on every page at bottom position.
}
Run Code Online (Sandbox Code Playgroud)
但hook_page_alter我认为在 Drupal 8 中没有。
如何在 drupal 8 中做到这一点?