小编Kun*_*ish的帖子

Private是Private,那么为什么java提供使用反射访问私有方法的工具?

使用反射时需要注意哪些潜在问题.我在反思中非常困惑,为什么java提供这种类型的功能来访问私有数据成员.

私有: 就像我想的那样,只有声明它的类才能看到它.

那为什么有可能访问其他类的私人事物?这个术语(反射)完全溢出了我在java中的private(Access Specifier)属性的概念.

我访问了许多有关此主题的链接,但没有给出关于此主题的完整说明.例如:

package example;

import java.lang.reflect.Method;

class A{
    private void privateMethod(){
        System.out.println("hello privateMethod()");
    }
}
class B{
    public static void main(String[] args) throws Exception {
        A d = new A();
        Method m = A.class.getDeclaredMethod("privateMethod");       
        m.setAccessible(true);
        m.invoke(d);
    }
}
Run Code Online (Sandbox Code Playgroud)

请详细解释这种方法的情景?我需要其他类中私有方法可访问性的优点和缺点吗?

java reflection

9
推荐指数
1
解决办法
311
查看次数

按键长按的Android软键盘弹出视图

我正在开发Android软键盘:

public class CustomKeyboard extends Keyboard{...}  

    public class CustomKeyboardView extends KeyboardView{...}

    public class CustomKeyboardIME extends InputMethodService implements KeyboardView.OnKeyboardActionListener{...}
Run Code Online (Sandbox Code Playgroud)

在某些键上,我有popupKeyboard和popupCharacters:

<Key android:codes="144" android:keyLabel="0" android:popupKeyboard="@xml/key_popup" android:popupCharacters=")" android:keyEdgeFlags="right"/>
Run Code Online (Sandbox Code Playgroud)

XML/key_popup.xml:

<Keyboard xmlns:android="http://schemas.android.com/apk/res/android"
  android:keyWidth="10%p"
  android:horizontalGap="0px"
  android:verticalGap="0px"
  android:keyHeight="@dimen/key_height" >
Run Code Online (Sandbox Code Playgroud)

但是当我长按"0"键弹出")"显示时,它会一直保持在那里直到我按下"X"按钮或")"字符.

而且我希望它只在我按住手指时打开.像iPhone键盘上的东西:

我想弹出像图像

有人可以帮忙吗?

谢谢!!

keyboard android popupwindow android-softkeyboard

6
推荐指数
1
解决办法
1984
查看次数

oAuth 1.0 获取请求改造 android

我想使用 Retrofit 实现 oAuth 1.0 get 请求,但无法获得响应。

在此处输入图片说明

邮递员回复:

{
    "1": {
        "entity_id": "1",
        "parent_id": "0",
        "position": "0",
        "level": "0",
        "name": "Root Catalog"
    },
    "2": {
        "entity_id": "2",
        "parent_id": "1",
        "position": "1",
        "level": "1",
        "name": "Default Category",
        "is_active": "1"
    }
}
Run Code Online (Sandbox Code Playgroud)

我的界面是:

 @GET("/api/rest/categories/?")
    @Headers({ "Content-Type: application/json"})
    Call<ResponseBody> getProduct( @Field("oauth_consumer_key") String grantType,
                                   @Field("oauth_token") String username,
                                   @Field("oauth_signature_method") String sig,
                                   @Field("oauth_timestamp") String timS,
                                   @Field("oauth_nonce") String nonc,
                                   @Field("oauth_version") String vers,
                                   @Header("Authorization") String authorization);
Run Code Online (Sandbox Code Playgroud)

方法调用是:

私人无效 callService(){

 byte[] credentials = "CONSUMER_SECRETE:TOKEN_SECRETE".getBytes();
 String basicAuth = "Basic " …
Run Code Online (Sandbox Code Playgroud)

android oauth get-request retrofit oauth-1.0a

5
推荐指数
1
解决办法
1994
查看次数

使用像WhatsApp这样的Firebase进行私聊

我正在尝试使用Firebase实现私人聊天Android应用,但我仍然坚持私人聊天的实施.

我正在使用这个GitHub库.这个演示提供了一个群聊,但我要实现的是一对一聊天.

这是否可以使用Firebase?如果是,那我该如何实现呢?

任何帮助,将不胜感激.谢谢.

android chat firebase firebase-cloud-messaging

4
推荐指数
1
解决办法
1万
查看次数