相关疑难解决方法(0)

如何防止对象在 Retrofit2 的 API 调用上发送空字段

我面临改造对象字段的问题。例如:我有对象名称标准,它有20 个字段,不,我只想在 API 调用时发送前4 个字段,其余所有字段在 api 调用时都应该被忽略。

以下是我的对象:

public class Criteria {

@SerializedName("mlsp_id")
@Expose
private String mlspId;
@SerializedName("listing_key")
@Expose
private String listing_key;
@SerializedName("limit")
@Expose
private String limit;
@SerializedName("add_to_log")
@Expose
private Integer addToLog;
@SerializedName("location")
@Expose
private String location;
@SerializedName("property_type")
@Expose
private List<String> propertyType = null;
@SerializedName("price")
@Expose
private Price price;
@SerializedName("beds")
@Expose
private Beds beds;
@SerializedName("baths")
@Expose
private Baths baths;
@SerializedName("floor_area")
@Expose
private FloorArea floorArea;
@SerializedName("lot_size")
@Expose
private LotSize lotSize;
@SerializedName("year_built")
@Expose
private YearBuilt yearBuilt; …
Run Code Online (Sandbox Code Playgroud)

android android-studio retrofit android-api-levels retrofit2

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

如何设置Spring Data JPA查询方法必须始终设置为true的参数值?

我不是很喜欢Hibernate和Spring Data JPA,我有以下疑问.

我有这个方法签名正确执行查询:

@Repository
public interface AccomodationMediaDAO extends JpaRepository<AccomodationMedia, Long> {

    AccomodationMedia findByIdAccomodationAndIsMaster(Long accomodationId, boolean isMaster);

}
Run Code Online (Sandbox Code Playgroud)

它找到(在AccomodationMedia实体类映射的表上)具有名为idAccomodation的字段的单个记录,该字段设置有由accomodationId方法参数表示的Long值,并且字段isMaster由isMaster布尔值重新呈现.

它工作正常,但我的"问题"是这样做我总是显式传递布尔值isMaster参数的.

此参数必须始终设置为true,所以我尝试以这种方式更改以前的方法签名:

AccomodationMedia findByIdAccomodationAndIsMaster(Long accomodationId, true);
Run Code Online (Sandbox Code Playgroud)

但IntelliJ显示错误:标识符或预期类型.

为什么?我可以设置必须将此参数的值显式设置为true布尔值吗?

java spring jpa spring-data spring-data-jpa

4
推荐指数
2
解决办法
1585
查看次数

为具有(模拟)可选/默认参数的函数编写 Javadoc

我有一些 C++ 代码的 Java 包装器,在其中我通过手动重载相关方法来模拟默认参数。[示例如Java 是否支持默认参数值?.] 在一种情况下,C++ fn 有 3 个可选参数,因此我必须用 Java 编写 8 个方法。

现在我想为所述方法编写JavaDocs。有什么办法可以避免将基本相同的文本写 8 次吗?除了冗长之外,这将是一场维护噩梦......

编辑:这是一个玩具示例,说明了方法的签名:

void foo(int i, String s, double d);
void foo(int i, String s);
void foo(int i, double d);
void foo(int i);
void foo(String s, double d);
void foo(String s);
void foo(double d);
void foo();
Run Code Online (Sandbox Code Playgroud)

java javadoc default-value optional-parameters

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

为什么java在方法调用中没有参数的默认值

例如用C++我可以写

void func(int a=1,int b=2){...}
Run Code Online (Sandbox Code Playgroud)

使用Java我必须创建几个方法

java core

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

方法中的java可选参数

我想创建一个方法,需要1个必需参数和1个可选参数,但我发现如何通过在参数(int ... b)中创建一个可选数组,但这是一个数组,我想制作它只是这个值为null或用户输入它,我可以通过制作两个相同名称的方法,但一个具有单个参数和一个具有2个参数,但是它可以只使用一个方法吗?

谢谢

java arrays parameters methods null

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

具有参数默认值的构造函数

java是否支持具有默认值参数的构造函数,例如

public Shape(int v=1,int e =2){vertices =v;edges = e; }
Run Code Online (Sandbox Code Playgroud)

java constructor

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

具有默认参数的覆盖特征方法

假设以下示例-执行后返回-“父亲”

trait Action {
    def doSomething(s:String = "father") = s
}

class RevokeAction extends Action{
    override def doSomething(s:String) = {
        s + s
    }
}

object HelloWorld {
  def main(args: Array[String]): Unit = {
    val revokeAction = new RevokeAction()
    revokeAction.doSomething()
  }
}
Run Code Online (Sandbox Code Playgroud)

查看编译器的功能-更好地说明正在发生的事情

package <empty> {
  abstract trait Action extends Object {
    def doSomething(s: String): String = s;
    <synthetic> def doSomething$default$1(): String = "father";
    def /*Action*/$init$(): Unit = {
      ()
    }
  };
  class RevokeAction extends Object with Action {
    <synthetic> …
Run Code Online (Sandbox Code Playgroud)

scala

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

避免空值,不变性,对象状态

我喜欢不变性的概念.我也喜欢no nulls的概念(如果可能的话,也没有NullDesignPattern,尽可能没有NullObjects).

但是下面的场景呢:

我有一个对象User,它有两个字段:birthdaydateInLifeMarried(可以是任何类似的字段;重要的是,这个字段最初是null在对象生命中的某个点上改变).

由于它是不可变的,我希望两个字段都在构造函数中:

public User(birthday, dateInLifeMarried)
Run Code Online (Sandbox Code Playgroud)

现在:

  1. 我不想传递null给第二个参数
  2. 我不想添加一个setter因为它是不可变的
  3. 我不想用NullObjectPattern调用构造函数而不是 null

我只是自相矛盾,还是有一种优雅的方式来拥有它,我没有想到的?

java oop immutability

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

Java中有没有办法设置默认参数?

这是我学习 Java 的第一周,我想知道如何为方法或构造函数设置默认参数。

例如,在 Python 中,它看起来像这样: def test_function(a=None, b, c=1):

在Java中有什么办法可以做到这一点吗?

java

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

使用ArrayList作为构造函数的参数

我正在尝试为一个接受一个ArrayList(包含整数)作为其中一个参数的类编写一个构造函数.稍后实例化此类时,我将传递一个适当的,预先填充的值列表,因此我不想在构造函数中创建一个空列表.

不幸的是,当我尝试编译下面的代码时,Java吐出了五个错误,都与第23行(我的构造函数的函数定义)有关.任何意见,将不胜感激:

/*
 * SumGenerator
 * 
 * @author James Scholes
*/

import java.util.ArrayList;
import java.util.Random;

public class SumGenerator
{
    // Some initial variables
    public int timesTable;
    public int multiple;

    /*
     * Constructor
     * 
     * @param timesTable(int): The times table to use for sum generation
     * @param limit(int): The highest multiple to use in sum generation
     * @param previousMultiples(ArrayList<Integer>): The previously used multiples to avoid sum duplication
    */
    public SumGenerator(int timesTable, int limit = 10, ArrayList<Integer> previousMultiples)
    {
        this.timesTable = timesTable; …
Run Code Online (Sandbox Code Playgroud)

java constructor arraylist

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

为什么声明变量会调用构造函数

我创建了一个简单的类来表示 x、y 坐标。它有一个封装的 int 和以下构造函数:

//point.h
Point(int x = 3, int y = 5); // not zero for example purposes

//point.cpp
Point::Point(int x, int y) : x(x), y(y) {}
Run Code Online (Sandbox Code Playgroud)

然后我有一个文件main.cpp

#include "point.h"
#include <iostream>

int main() {
    Point p;
    std::cout << "x: " << p.getX() << " y: " << p.getY() << std::endl;
    p.setX(7);
    p.setY(9);
    std::cout << "x: " << p.getX() << " y: " << p.getY() << std::endl;
}
Run Code Online (Sandbox Code Playgroud)

来自 Java 背景,我预计这会产生一个空指针,但它却打印:

x: 3 y: 5
x: …
Run Code Online (Sandbox Code Playgroud)

c++ constructor

-1
推荐指数
1
解决办法
2174
查看次数