В дополнение к тому, что уже было опубликовано, вы должны знать, что со времени Java 8 мы можем сократить наш код и записать его так:
Collection.sort(yourList, Comparator.comparing(YourClass::getFieldToSortOn));
или поскольку у List теперь есть метод sort
yourList.sort(Comparator.comparing(YourClass::getFieldToSortOn));
Начиная с Java 8, функциональные интерфейсы (интерфейсы только с одним абстрактным методом - они могут иметь больше стандартных или статических методов) могут быть легко реализованы с использованием:
arguments -> body
source::method
. Поскольку Comparator
имеет только один абстрактный метод int compare(T o1, T o2)
, это функциональный интерфейс.
Итак, вместо (пример из @BalusC answer )
Collections.sort(contacts, new Comparator() {
public int compare(Contact one, Contact other) {
return one.getAddress().compareTo(other.getAddress());
}
});
мы можем уменьшить этот код до:
Collections.sort(contacts, (Contact one, Contact other) -> {
return one.getAddress().compareTo(other.getAddress());
});
Мы можем упростить эту (или любую) лямбда, пропустив типы аргументов
{return
... }
Итак, вместо
(Contact one, Contact other) -> {
return one.getAddress().compareTo(other.getAddress();
}
мы можем написать
(one, other) -> one.getAddress().compareTo(other.getAddress())
Также теперь Comparator
имеет статические методы, такие как comparing(FunctionToComparableValue)
или comparing(FunctionToValue, ValueComparator)
, которые мы могли бы легко использовать для создания atat Comparators, которые должны сравнивать некоторые конкретные значения от объектов.
Другими словами, мы можем переписать выше код как
Collections.sort(contacts, Comparator.comparing(Contact::getAddress));
//assuming that Address implements Comparable (provides default order).
Вызов метода isHTML()
после свойства экземпляра Body
(я имею в виду $mail->Body
) был задан для меня проблемой:
$mail->Subject = $Subject;
$mail->Body = $Body;
$mail->IsHTML(true); // <=== call IsHTML() after $mail->Body has been set.
// Извините мой начальный английский
Существует метод msgHTML (), который также вызывает вызов IsHTML ().
Hrm ... name IsHTML
запутан. ..
/**
* Create a message from an HTML string.
* Automatically makes modifications for inline images and backgrounds
* and creates a plain-text version by converting the HTML.
* Overwrites any existing values in $this->Body and $this->AltBody
* @access public
* @param string $message HTML message string
* @param string $basedir baseline directory for path
* @param bool $advanced Whether to use the advanced HTML to text converter
* @return string $message
*/
public function msgHTML($message, $basedir = '', $advanced = false)
вам нужно передать true как аргумент функции IsHTML ().
Что чуть не убило меня, я определил $ mail-> AltBody. После этого все работало
, или если у вас все еще есть проблемы, вы можете использовать это
$mail->Body = html_entity_decode($Body);
В версии 5.2.7 я использую это для отправки обычного текста:
$mail->set('Body', $Body);
все, что вам нужно сделать, это просто добавить $ mail-> IsHTML (true); к коду он отлично работает.
сделайте так: вставьте свой html-код в свой отдельный файл html с помощью метода GET.
$mail->IsHTML(true);
$mail->WordWrap = 70;
$mail->addAttachment= $_GET['addattachment']; $mail->AltBody
=$_GET['AltBody']; $mail->Subject = $_GET['subject']; $mail->Body = $_GET['body'];