小编Ser*_*ion的帖子

Kotlin:迭代对象的组件

每个数据类对象都有一个组件,用于每个属性,如component1,component2等.我想知道Kotlin中是否有任何方法可以迭代类的每个组件.说我上课了:

class User(age:Int, name:String)
Run Code Online (Sandbox Code Playgroud)

我可以这样做:

for(component in aUserObject){
    //do some stuff with age or name
}
Run Code Online (Sandbox Code Playgroud)

kotlin

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

改造2 + RxJava取消/取消订阅

我正在执行网络请求,我发送文件和消息.我想有一个取消当前请求的选项.我发现了两个类似的问题,并且都建议observable.subscribe(Observer)返回具有方法的Subscription对象unsubscribe().

这是第一个

第二个

在我的情况下,我使用observable.subscribe(Observer)哪个是无效的.这是我的代码:

Observable<MessengerRaw> observable = mModel.sendMessage(message, companion, description, multiParts);
        observable.subscribe(new Observer<MessengerRaw>() {
            @Override
            public void onSubscribe(Disposable d) {

            }

            @Override
            public void onNext(MessengerRaw value) {
                if (getView() != null) {
                    ((MessengerActivity) getView()).resetMessegeView();
                    ((MessengerActivity) getView()).updateMessageList();
                }
            }

            @Override
            public void onError(Throwable e) {
                getData().remove(0);
                if (getView() != null) {
                    ((MessengerActivity) getView()).updateMessageList();
                }
            }

            @Override
            public void onComplete() {
                hideProgress();
            }
        });
Run Code Online (Sandbox Code Playgroud)

那么如何取消订阅/取消我的请求?谢谢.

android retrofit2 rx-java2

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

Android:如何在自定义选项卡中设置 cookie 数据

我需要在自定义选项卡中打开一个网页。但是,该页面显然需要用户登录。我们不希望用户被要求登录,相反,我们希望将带有 token 的 cookie 设置为 CustomTab,以便他们自动登录。我在这里读过一个答案,说这是不可能的。我理解正确吗?有办法实现目标吗?

编辑:我在 @Aris Panayiotou 的回答后尝试过,但没有成功。我在这里做错了什么?

private void openWebView() {
    if (getActivity() != null) {
        CookieManager cookieManager = new CookieManager();
        CookieHandler.setDefault(cookieManager );
        String cookieStringTakenFromWeb = "some cookie string with correct token";

        CookieStore cookieStore = cookieManager.getCookieStore();
        HttpCookie cookie = new HttpCookie("Cookie", cookieStringTakenFromWeb);
        cookieStore.add(URI.create(Util.getString(R.string.myUrl)), cookie);

        final CustomTabsIntent customTabsIntent = new CustomTabsIntent.Builder(mCustomTabsSession)
                .setToolbarColor(ContextCompat.getColor(getActivity(), R.color.red))
                .setShowTitle(true)
                .build();
        customTabsIntent.launchUrl(getActivity(), Uri.parse(Util.getString(R.string.myUrl)));
    }
}
Run Code Online (Sandbox Code Playgroud)

cookies android chrome-custom-tabs

8
推荐指数
2
解决办法
9171
查看次数

我正在用Java实现工厂设计模式

我正在用Java实现工厂设计模式,我想在抽象类中保留一个重载方法。它会违反工厂模式概念吗?还是请提出这是否是实施Factory设计模式的正确方法?

abstract class A{
    void meth(int a);
    void meth(int a,int b);
}

class Factory{
    public static A factoryMethod(int a){
         if(a==1){
            return new Ob1();
        }else{
            return new Ob2();
        }
    }
}

class Ob1 extends A{

void meth(int a){}
void meth(int a,int b){}
}
Run Code Online (Sandbox Code Playgroud)

java design-patterns

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

MockK:验证使用父类的特定子类类型的参数调用函数

我正在使用 MockK 进行测试。语言:科特林。我有sealed class A几个子类,例如BCD,它们用作函数调用的参数。我需要确保使用 的子类型之一调用函数A。为此,我尝试这样做: verify { instance.doSomething(any<B>())}并且它通过了。然而,我尝试any<C>这样做,any<D>但它仍然通过了。

如何验证该函数是否使用类型为Band only的参数调用B

unit-testing kotlin mockk

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

Kotlin中的课程属性应该是私有的吗?如何访问它们?

阿罗哈!在阅读Kotling语言参考时,我注意到从不使用类的属性的关键字"private"(总是默认为public).它还说自动生成getter和setter.所以我创建了类并将其字段设为私有.但是,当我创建类的对象时,我看不到字段,也没有可用的setter和getter,除非我自己编写它们.那么这里的规则是什么?保持可见性修饰符默认(公共)或将它们设为私有并提供mutator方法?谢谢.

kotlin

3
推荐指数
1
解决办法
1058
查看次数

房间数据库:java.lang.reflect.InitationTargetException

我正在我的新应用程序中实现 Room 数据库。设置数据库时出现此错误:

* What went wrong:
Execution failed for task ':app:kaptStandardDebugKotlin'.
> A failure occurred while executing org.jetbrains.kotlin.gradle.internal.KaptExecution
   > java.lang.reflect.InvocationTargetException (no error message)
Run Code Online (Sandbox Code Playgroud)

这就是我的数据库类的样子:

    @Database(
  entities = [
    ExternalDataModel::class
  ],
  version = 1
)
@TypeConverters(Converters::class)
abstract class MyRoomDatabase : RoomDatabase() {

  abstract fun externalsDao(): ExternalsDao

  companion object {

    private const val DB_NAME_PREFIX = "myt_db_user"

    @Volatile
    private var instance: MyRoomDatabase? = null

    fun getInstance(context: Context): MyRoomDatabase{
      return instance ?: synchronized(sLock) {
        instance ?: buildDatabase(context, DB_NAME_PREFIX).also {
          instance = it
        } …
Run Code Online (Sandbox Code Playgroud)

android kotlin android-room room

3
推荐指数
1
解决办法
4617
查看次数

比较matlab中的两个单元数组元素

我想比较两个单元阵列,1x160(a)和80x1(b).我的单元格数组由内部有许多字符串的单元格组成.我想比较每个字符串,看看它们是否相等,然后如果它们相等,则插入新数组,否则插入0.我找不到任何功能.我试过'isequal','strfind'和其他人.所有这些都给我下一条错误消息:

如果任何输入参数是单元格数组,则第一个必须是字符串的单元格数组,第二个必须是字符数组.

这是我的代码!

function [inter]=Intersect2(a,b)
int=cell(0);
b2=[b;b];

for i=1:length(a)   
    if a{i,1}==b2{i,1}(1) ( or 'isequal','strfind')
       int{i}=a{i};
    else
        int{i}=0;
    end     
end
Run Code Online (Sandbox Code Playgroud)

matlab cell-array

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

使用javax.transaction.UserTransaction在EJB中实现事务

我正在实现一个EJB应用程序.此时我需要一个交易.我需要在行中执行3个方法,如果一个失败,应该回滚所有内容.在这里:http://www.conceptgo.com/gsejb/eb04.html,我找到了一个教程.我的代码:

    try {
        javax.transaction.UserTransaction ut = (UserTransaction) ctx.lookup("java:comp/UserTransaction");
        ut.begin();
        Feeds feed = loadFeed(url);

        try{
            em.persist(feed);
            uf.setFeedId(feed.getFeedId());
            uf.setUserId(user_id);         
            em.persist(uf);
        }catch (EntityExistsException e){
            ut.rollback();
            return false;
        }catch (IllegalArgumentException ea){
            ut.rollback();
            return false;
        }
        if (feed.getFeedId()!= null && feed!=null) {
            ut.commit();
        }else{
            ut.rollback();
            return false;
        }
Run Code Online (Sandbox Code Playgroud)

当我运行我的应用程序时,我收到下一条错误消息

Caused by: java.lang.IllegalStateException: BaseTransaction.checkTransactionState
 - ARJUNA016051: thread is already associated with a transaction
Run Code Online (Sandbox Code Playgroud)

谁知道原因是什么以及如何解决?

jboss transactions ejb-3.0

2
推荐指数
1
解决办法
4266
查看次数