我有这个由超过50个属性组成的pojo文件.创建手动构建器类可能是容易出错的活动.
有没有简单的方法来生成构建器类?例如,如果你需要生成getter setter,你通常会使用eclipse Source > Generate Getters and Setters是否有一个无痛的程序来执行此操作?
非常感谢任何帮助..
我正在尝试将 a 类扩展到 aX。所以,我也扩展了 aBuilder。但是,虽然我能够使用以下方法创建类 a 的对象:
aBuilder f = new aBuilder();
f.bi = i;
f.bs = s;
a atry = f.withI(i).withS(s).build();
Run Code Online (Sandbox Code Playgroud)
这同样不适用于 aX。当我尝试这样做时:
aXBuilder fb = new aXBuilder();
aX aXtry = fb.withI(i).withS(s).withB(b).build();
Run Code Online (Sandbox Code Playgroud)
我收到错误消息(对于 a.aBuilder 类型,未定义 withB(Boolean) 方法)。我应该为 aX 重写所有内容,而不是简单地添加新内容吗?我不想这样做,因为这会导致我的代码中有很多重复。类 a 和 aX 如下所示:
class a {
protected String s;
protected int i;
public void getdata() {
System.out.println(this.s);
System.out.println(this.i);
}
protected a(aBuilder fb) {
this.s = fb.bs;
this.i = fb.bi;
}
public static class aBuilder {
public aBuilder() {
} …Run Code Online (Sandbox Code Playgroud) 我正在通过"Scala for the Impatient"一书中的练习来学习Scala.一个问题是:
结果
"abc".map(_.toUpper)是aString,但结果"abc".map(_.toInt)是aVector.找出为什么.
在阅读" Scala集合的架构 "之后,我认为这是因为CanBuildFrom选择了不同的隐式实现.如何找出为上述表达式选择的?
我有一些 EditTexts 和Ongoing Notification 的活动。
填写 EditTexts 后,我按主页按钮返回主屏幕(我的应用程序在后台运行)。当我单击“正在进行的通知”时,我想要的只是用填充的 EditTexts 返回我的活动(而不是创建一个新的)。
我试过这个
和这个
他们根本不工作!!!
下面是我的代码片段
协议监视器活动.java
Intent resultIntent = new Intent(this, ProtocolMonitorActivity.class);
TaskStackBuilder stackBuilder = TaskStackBuilder.create(this);
stackBuilder.addParentStack(ProtocolMonitorActivity.class);
stackBuilder.addNextIntent(resultIntent);
PendingIntent resultPendingIntent = stackBuilder.getPendingIntent(0,
PendingIntent.FLAG_UPDATE_CURRENT);
NotificationCompat.Builder notiBuilder = new NotificationCompat.Builder(
this).setSmallIcon(R.drawable.noti_icon)
.setContentTitle("Protocol Monitor App")
.setContentText("Service is running")
.setOngoing(true);
notiBuilder.setContentIntent(resultPendingIntent);
notiManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
notiManager.notify(notiId, notiBuilder.build());
Run Code Online (Sandbox Code Playgroud)
显现
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".ProtocolMonitorActivity"
android:label="@string/app_name"
android:process="com.android.phone"
android:launchMode="singleTop"
android:screenOrientation="portrait" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
<category …Run Code Online (Sandbox Code Playgroud) 我正在关注此链接https://kotlin.link/articles/DSL-builder-in-Kotlin.html以了解Kotlin中的构建器实现.我不明白Builder类中的方法.方法name()接收扩展函数作为参数,它不接收任何内容并返回String.来电者打来电话name { "ABC" }.如果调用者将String传递给name方法,它如何转换为返回String的Extension方法?
我尝试使用带接收器的函数文字的Kotlin文档,但所有样本都返回Unit或引用DSL构建器.尝试谷歌搜索它也理解但没有运气抓住这个概念.
我刚刚从 Android 基础转移到 ios,在 swift 中寻找构建器模式 get 和 set 方法,但找不到类似的东西。仅发现以下内容
var ptype : String? {
get{
return self.ptype
}set (ptype) {
self.ptype = ptype
}
}
Run Code Online (Sandbox Code Playgroud) main.dart 文件 ChangeNotifierProxyProvider 存在问题,未定义构建器方法。
ChangeNotifierProxyProvider<Auth, Orders>(
builder: (ctx, auth, previousOrders) => Orders(
auth.token,
auth.userId,
previousOrders == null ? [] : previousOrders.orders,
),
),
Run Code Online (Sandbox Code Playgroud) 我有两个这样的域类。
@Getter
@Setter
public class User {
private String name;
}
Run Code Online (Sandbox Code Playgroud)
@Getter
@Setter
public class Student extends User {
private int grade;
}
Run Code Online (Sandbox Code Playgroud)
我还有两个这样的 Dto 课程。
@Getter
@SuperBuilder
public class UserDto {
private final String name;
}
Run Code Online (Sandbox Code Playgroud)
@Getter
@SuperBuilder
public class StudentDto extends UserDto {
private final int grade;
}
Run Code Online (Sandbox Code Playgroud)
所以我创建了一个扩展 GenericMapper 的映射器类 StudentMapper。
public interface GenericMapper<D, E> {
D toDto(E e);
E toEntity(D d);
}
Run Code Online (Sandbox Code Playgroud)
@Mapper(componentModel = "spring")
public interface StudentMapper extends GenericMapper<StudentDto, Student> {
}
Run Code Online (Sandbox Code Playgroud)
但是我在编译Mapper时出错了。
“StudentDto 没有可访问的构造函数。” …
我试图创建一个遵循构建器模式并且在编译时完全运行的类(使用constevalC++20 中的 new 关键字),但无论我尝试什么都不起作用。例如,这是行不通的:
#include <vector>
class MyClass
{
private:
std::vector<int> data;
public:
consteval MyClass& setData()
{
this->data = {20};
return *this;
}
consteval std::vector<int> build()
{
return data;
}
};
int main()
{
std::vector<int> data = MyClass().setData().build();
}
Run Code Online (Sandbox Code Playgroud)
这给出了错误“<anonymous>不是常量表达式”。这让我相信我应该返回该类的副本:
#include <vector>
class MyClass
{
private:
std::vector<int> data;
public:
consteval MyClass setData()
{
// https://herbsutter.com/2013/04/05/complex-initialization-for-a-const-variable/
return [&]{
MyClass newClass;
newClass.data = {20};
return newClass;
}();
}
consteval std::vector<int> build()
{
return data;
}
};
int main() …Run Code Online (Sandbox Code Playgroud) 这是一个为什么的问题,而不是操作方法:)
我已将查询巨石分配给变量$ query:
$query = table::where(['id'=>1, 'this_version'=> 1]);
$versions['slug1'] = $query->select('tourist_id', 'tourist_version')->get()->toArray();
print_r($versions);
Run Code Online (Sandbox Code Playgroud)
输出带有2(!)子数组的数组:
Array
(
[slug1] => Array
(
[0] => Array
(
[tourist_id] => 1
[tourist_version] => 1
)
[1] => Array
(
[tourist_id] => 2
[tourist_version] => 1
)
)
)
Run Code Online (Sandbox Code Playgroud)
但是,如果我在$ query声明和获取$ version [2]数组之间使用$ query添加另一行,我的$ version [2]输出将缩短为一维数组:
$query = previoustour2_tourist::where(['tour2_id'=>$tour->id, 'this_version'=> 1]);
// Added line:
$versions['slug0'] = $query->select('version_created')->first()->version_created;
//
$versions['slug1'] = $query->select('tourist_id', 'tourist_version')->get()->toArray();
print_r($versions);
Run Code Online (Sandbox Code Playgroud)
输出(注意slug1现在只有1个嵌套数组):
Array
(
[slug0] => 2017-08-08 08:25:26
[slug1] => Array
(
[0] …Run Code Online (Sandbox Code Playgroud)